មជ្ឈមណ្ឌលកូរ៉េ សហ្វវែរ អេច អ ឌី Korea Software HRD Center កម្មវិធីបង្រៀន Java Programming ជាភាសាខ្មែរ Online Java Training Course Advisor: Dr. Kim Tae Kyung www.kshrd.com.kh
មេរៀនទី៣៖ List Cocllection ៣.២ LinkedList ៣.៣ ArrayList ៣.៤ Vector www.kshrd.com.kh
៣.១ អ្វីជា List? គឺជា Interface នៃ collection ដែលវា store ឬ ក្ដោប fixed-size Collection នៃ Element ទៅកាន់ប្រភេទដូចគ្នា ។ វាត្រូវបាន Class មួយចំនួនធ្វើការimplementដើម្បីបង្កើតជា Class មានលក្ខណ ជា Collection ។ ក្នុងមេរៀននេះយើងនឹងលើកយក class ដែលធ្វើការ implement ពី interface Listមានដូចជា៖ LinkedList ArrayList Vector Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList LinkedListClass ធ្វើការ extends (មានន័យថាទទួលនូវ properties និង Method )ពី AbstractSequentialList ហើយធ្វើការ Implements (មានន័យថាទទួលរាល់ Method ) ចេញពី List Interface។ ហើយ LinkedList class ផ្តល់ឲ្យយើងនូវ Linked-list ជាទិន្នន័យដែលមានលក្ខណៈ data structure Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList LinkedList class មាន Constructors ចំនួនពីរ ។ Constructor ទីមួយគឺបង្កើតនូវ Linked list ទទេមួយ។ LinkedList( ) Constructor ទីពីរគឺបង្កើតនូវ linked list មួយដែលចាប់ផ្តើមជាមួយតម្លៃនៃធាតុនៅក្នុង collection ។ LinkedList(Collection c) Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList void add(Object o) បន្ថែមនូវ element ដែលផ្តល់ឲ្យទៅទីតាំងដែលបានផ្តល់ក្នុង List។ LinkedList l1 = new LinkedList(); //add elements to the linked list l1.add(4,“S"); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList void addFirst(Object o) ធ្វើការបញ្ចូលរាល់ element ដែលបានផ្តល់ឲ្យទៅទីតាំងដំបូងក្នុង List។ LinkedList l1 = new LinkedList(); //add elements to the linked list l1.addFirst(“C"); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList void addLast(Object o) បន្ថែមនូវរាល់ផ្នែកខាងចុងនៃរាល់ element ដែលផ្តល់ឲ្យទៅទីតាំងខាងក្រោយក្នុង List ។ LinkedList l1 = new LinkedList(); //add elements to the linked list l1.addLast(“S"); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList void remove(Object o) លុបនូវ element ដែលបានផ្តល់ឲ្យក្នុង List។ LinkedList l1 = new LinkedList(); //add elements to the linked list l1. remove(“A"); or l1.remove(3); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList Object clone() ផ្តល់ត្រឡប់មកវិញនូវរាល់អ្វីដែលបានចម្លងពី LikedList LinkedList list1 = new LinkedList(); LinkedList list2 = new LinkedList(); // clone list1 list2 = (LinkedList) list1.clone(); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.២ LinkedList Object clone() ផ្តល់ត្រឡប់មកវិញនូវរាល់អ្វីដែលបានចម្លងពី LikedList LinkedList list1 = new LinkedList(); LinkedList list2 = new LinkedList(); // clone list1 list2 = (LinkedList) list1.clone(); Inheritance ជាលក្ខណៈពិសេសមួយក្នុងចំណោមលក្ខណៈពិសេសជាច្រើនទៀតរបស់ Object Oriented Programming។
៣.៣ ArrayList ArrayList class ធ្វើការ extends ”មានន័យថាវាទទួលនូវ properties និង method ”ចេញពី AbstractList ហើយធ្វើការ implements ”មានន័យថាវាទទួលនូវរាល់ method ទាំងអស់នៅក្នុង” List interface។ ArrayList គឺជា Dynamic arrays មានន័យថាវាអាចពង្រើកបង្រួមប្រវែងតាមតម្រូវការ ។ Array lists គឺត្រូវបានបង្កើតឡើងដោយមានការកំណត់ ទំហំ ។ ពេលដែលទំហំនេះត្រូវបានបញ្ចូលតម្លៃលើស ពេលនោះ Collection និងធ្វើការពង្រើកទំហំដោយស្វ័យប្រវត្តិ ។ ពេលដែល Objects ត្រូវបានលុបចោល Array និងបង្រួម វិញ។
៣.៣ ArrayList The ArrayList class supports three constructors. Constructor ដំបូងនៃ ArrayList បង្កើតឡើងដោយ array list ទទេ (empty) ។ ArrayList( ) តាមរយៈការបង្កើត constructor នៃ ArrayList កាផ្តល់តំលៃ elementsតាមរយៈ collection ។ ArrayList(Collection c) តាមរយៈការបង្កើត constructor នៃ ArrayList មាន capacityដំបូងជាក់លាក់។ Capacity គឺជាទំហំមូលដ្ឋាន array ដែលប្រើសំរាប់រក្សាទុកធាតុ(elements)។ Capacity កើនឡើងដោយស្វ័យប្រវត្តិតាមរយៈធាតុ(elements) ដែលបានបញ្ចូលទៅ array list ArrayList(int capacity)
៣.៣ ArrayList SN ការពិពណ៌នា Methods 1 void add(int index, Object element): បញ្ចូលធាត់ដែលចូលទៅទីតាំងជាក់លាក់នៅក្នុង list ។ វានិងបោះ IndexOutOfBoundsException ប្រសិនបើ index ចេញពីជួរ(index < 0 || index > size()) ។ 2 boolean add(Object o) : បន្ថែមធាតុចូលទៅ list ដែលស្ថិតនៅខាងក្រោយ។ 3 boolean addAll(Collection c) : បញ្ចូលធាតុទាំងអស់នៅក្នុង collection ចូលទៅ list ដែលស្ថិតនៅខាងក្រោយ, ទៅតាមលំដាប់លំដោយហើយវានិងផ្តល់ត្រលប់នូវ collection's iterator ដែលជាក់លាក់ ។ វានិងបោះ NullPointerException ប្រសិនបើ collection គ្មានតំលៃ ។ 4 boolean addAll(int index, Collection c) : បញ្ចូលធាតុទាំងអស់នៅក្នុង collection ចូលទៅ list, វាចាប់ផ្តើមនូវទីតាំដែលជាកលាក់ ។ វានិងបោះ NullPointerException ប្រសិនបើ collection គ្មានតំលៃ។ 5 void clear() : លុបធាតុ (elements) ទាំងអស់ចេញពី list ។ 6 Object clone() : ផ្តល់ ArrayList ដែលដូចនិង ArrayList ដើម។
៣.៤ Vector Vector ធ្វើការ implements ”មានន័យថាវាទទួលនូវរាល់ Method” ចេញពី dynamic array ។ វាស្រដៀងទៅនឹង ArrayList ប៉ុន្តែមានចំនុច ២ ដែលខុសគ្នា៖ ( Vector គឺមានលក្ខណៈជា synchronized ”មានន័យថារាល់ដំណើរការរបស់វាគឺធ្វើការជាលក្ខណៈតាមលំដាប់លំដោយ គឺកាលណា object មួយធ្វើការចប់ហើយ ទើប object បន្ទាប់ទៀតអាចធ្វើការបន្ត។ ( Vector មាន Method របស់វាជាច្រើនដែលមិនមែនជា collections framework ទេ។ Vector គឺវាមានប្រយោជន៍យ៉ាងខ្លាំងប្រសិនបើអ្នកមិនបានដឹងមុនថាតើ Array ត្រូវមានទំហំប៉ុន្មាន រឺក៏អ្នកចង់ឲ្យកម្មវិធីអាចធ្វើការផ្លាស់ប្តូរទំហំបាននៅកំឡុងពេលដែលប្រើប្រាស់។
៣.៤ Vector The Vector class supports four constructors Vector( ): Constructor ដំបូងនៃ Vector តំលៃទទេ (empty) ។ Vector(int size): ការបង្កើត Vector ដែលផ្តល់ទំហំដំបូងតាមរយៈ size ។ Vector(int size, int incr): ការបង្កើត Vector ដែលផ្តល់ទំហំដំបូងតាមរយៈ size ហើយនិងកើនឡើងតាមរយៈ incr ។ Vector(Collection c): ការបង្កើត Vector ដែលផ្ទុកធាតុជា collection ។
៣.៤ Vector SN ការពិពណ៌នា Methods 1 void add(int index, Object element): បញ្ចូលធាតុទៅក្នុង Vector ទៅទីតាំជាក់លាក់ ។ 2 boolean add(Object o) : បន្ថែមធាតុទៅទីតាំចុងក្រោយនៃ Vector ។ 3 boolean addAll(Collection c) : បន្ថែមធាតុទៅទីតាំចុងក្រោយនៃ Vectorជាលក្ខណៈ Collection ។ 4 boolean addAll(int index, Collection c) : បន្ថែមធាតុជាលក្ខណៈ Collection ទៅទីតាំងជាក់លាក់របស់ Vector។ 5 void addElement(Object obj) : បន្ថែមសមាសភាគជាក់លាក់ទៅទីតាំងចុងក្រោយហើយវាកើនទំហំនៃ Vector មួយ។
៣.៤ Vector 6 boolean equals(Object o) : ប្រធៀប Object ជាមួយនិង Vector។ 7 Object firstElement(): ផ្តល់ត្រលប់នូវតំលៃតំបូងនៃ vector។ 8 Object get(int index) : ផ្តល់ត្រលប់នូវធាតុមកពីទីតាំងជាក់លាក់របស់ Vector 9 int hashCode() : ផ្តល់ត្រលប់នូវតំលៃ hash code របស់ Vector ។ 10 Object clone() : ផ្តល់ត្រលប់នូវ vector ដែលមានតំលៃដូច ។ 11 void clear() : លុបធាតុរបស់ Vector ។
សមាជិក ក្រុមអ្នកស្រាវជ្រាវ ក្រុមផលិតវីដេអូ ល. ស៊ឹម សុភារត្ន័ simroth@ymail.com ល. ឈុន បញ្ញារតន៍ chhunpanharath@gmail.com ល. ព្រាប វិទ្ធី Itpreap.vuthy@gmail.com ល. សែត យុត syuth89@gmail.com ល. ស្លេះ អុលវី slehulvy@gmail.com ល. ហង្ស បូរី houngboreyrupp@gmail.com ល. ហួ ឈុនឡេង huochhunleng@yahoo.com ល. អ៊ាប សុជាតិ eamsocheatsmart@gmail.com ល. សៃ វិចិត្រ sai.vichet70@gmail.com
មេរៀនបន្ទាប់ នឹងធ្វើការបង្ហាញពី JCDB Programming