Collection
Collection គឺជា framework មួយរបស់ java ដែលបង្កើតឡើងមកឲ្យយើងធ្វើការ store និង manipulate(មានដូចជា search, sort, update, delete..) នៃបណ្តុំ object។ Collection គឺវាផ្ទុកតែ object ទេ ដែលប្រើជាមួយ wrapper class។
Collection គឺវាដំណើរការដូចជា searching, sorting, insertion, manipulation, delete..។

List
List គឺជាតាមលំដាប់។ វាអាចទុកចំនួនផ្ទួនបាន (duplicate element) ឧទាហរណ៍អាមុនមានលេខ ៥ ក្រោយមកដាក់លេខ ៥បានទៀត ដោយសារវាទុកតំលៃទៅតាម index (0, 1, 2...)។
នៅក្នុង list មានបីគឺ ArrayList, Vector និង LinkList
1. ArrayList
ArrayList class គឺប្រើជាលក្ខណជា dynamic array(វាអាចបត់បែនបានទៅតាមយើងឲ្យតំលៃទៅវា យើងអាចថែមថយវាបាន) ដើម្បីធ្វើការផ្ទុកនៅ elements របស់ខ្លួនវា។ យើងដឹងហើយថាលក្ខណរបស់ array គឺមិនអាចបត់បែនបានទេ គឺយើងដាក់ចំនួនប៉ុន្មានគឺវាប៉ុន្នឹង។
inherits ពី class មេរបស់វាឈ្មោះថា AbstractList និង interface មេរបស់វាឈ្មោះថា implements List។
ទំហំរបស់វាកើនលក្ខណជា dynamic។ វាកើនឡើងម្តង ៥០% ហើយទំហំ default របស់គឺ ១០។ ឧទាហរណ៍វាមានខ្លួនវា ១០ ហើយកើនឡើង ៥០% គឺវាឡើងទៅ ១៥ ហើយវាកើនឡើង ៥០% ទៀត ២៣..។
ArrayList វាអាចផ្ទុកតំលៃស្ទួនបាន។ វាមានលក្ខណលំដាប់លំដោយ។ វាជា non synchronize វាអាច access បានច្រើនក្នុងពេលតែមួយ។ random access យើងចង់ access ទៅយកធាតុវាមួយណាកក៏បាន តាមរយ index។ វាដំណើរការយឺតបន្ទិច។
ArrayList constructer មានបី៖
ArrayList()
វាជា array empty
ArrayList(collection c)
យើងបង្កើត array list ដោយវាមានធាតុស្រាប់ គឺដោយយើងឲ្យចំនួនធាតុជាមុន
ArrayList(int capacity)
capacity ទៅតាមយើង increase default
យើងបង្កើត ArrayList ដោយយើងសរសេរ ArrayList រួចចុច keyboard control+space វានឹងចេញមកហើយនៅក្នុងសញ្ញា <E> សំរាប់អក្សរ E គឺ Element សំរាប់យើងដាក់ wraper class
import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); } }
យើងចង់ Add វា ដោយយើងប្រើ method add
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); System.out.println(arraylist); } }

រាប់ចំនួនធាតុយើងប្រើ size
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); int mySize = arraylist.size(); System.out.println("Number element array: "+mySize); } }

Add ទៅតាមទីតាំងដែលយើងដាក់
arraylist.add(index, element);index គឺសំរាប់ដាក់ទៅទីតាំងណាមួយដែលយើងចង់ដាក់ ដែលលំដាប់វាចាប់ពី ០ ទៅ
element គឺសំរាប់ដាក់តំលៃ។
នៅខាងលើ array ពីរគឺ 5 និង 8 ឥឡូវនេះយើង add array នៅចន្លោះ 5 និង 8
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); System.out.println(arraylist); } }

Get: គឺសំរាប់ចាប់យកវាមកបង្ហាញតាម index ដោយយើងប្រើ method get។
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); int myValue = arraylist.get(2); System.out.println("Array is "+myValue); } }

Remove : យើងលុបតំលៃរបស់វាណាមួយទៅតាម index ដោយប្រើ remove method។
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); System.out.println(arraylist); arraylist.remove(1); System.out.println(arraylist); } }

public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); arraylist.removeAll(arraylist); System.out.println(arraylist); } }
Update: ដើម្បីយើងកែតំរូវតំលៃ ឬយើងហៅថា update គឺយើងប្រើ set method។
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); System.out.println(arraylist); arraylist.set(1, 15); System.out.println(arraylist); } }

public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); System.out.println(arraylist); for(Integer e:arraylist) { System.out.println(e); } } }

សំរាប់ e: គឺប្រកាស( delare )សំរាប់យើងយកវាមកប្រើ។
នៅក្នុង arrayList យើងអាចដាក់តំលៃទៅឲ្យវាផ្ទួនបាន (doublicate)។
public class ArrayListDemo { public static void main(String[] args) { ArrayList<Integer> arraylist = new ArrayList<>(); arraylist.add(5); arraylist.add(8); arraylist.add(1, 10); System.out.println(arraylist); arraylist.add(10); System.out.println(arraylist); } }

Vector
Vector គឺជា synchronized មានន័យថាមានដំណើរការម្តងមួយៗ។ វាបង្កើនទំហំរបស់វាម្តង ១០០% ហើយ default គឺ ២០ វាជាប្រភេទ legacy class (កូដចាស់)
លក្ខណរបស់ vector
1 | Vector()វាជា default vector |
2 | Vector(int size)ការកំណត់ទំហំរបស់វា ហើយទំហំរបស់វា default 20 |
3 | Vector(int size, int incr)ការកំណត់ vector ទៅតាម element |
4 | Vector(Collection c)ការបង្កើត vector ទៅតាម object |
public class VectorDe { public static void main(String[] args) { Vector<String> fruit = new Vector<>(); fruit.add("Apple"); fruit.add("Banana"); fruit.add("Coconat"); fruit.add("Manko"); System.out.println(fruit); } }

public class VectorDe { public static void main(String[] args) { Vector<String> fruit = new Vector<>(); fruit.add("Apple"); fruit.add("Banana"); fruit.add("Coconat"); fruit.add("Manko"); System.out.println(fruit); boolean b = fruit.contains("Coconat"); System.out.println(b); } }

របៀបយកធាតុរបស់ vector មកប្រើដោយប្រើ Enumeration method
public class VectorDemo { public static void main(String[] args) { Vector<String> fruit = new Vector<>(); fruit.add("Apple"); fruit.add("Banana"); fruit.add("Coconat"); fruit.add("Manko"); System.out.println(fruit); Enumeration<String> elements = fruit.elements(); while(elements.hasMoreElements()) { String e = (String) elements.nextElement(); System.out.println(e); } } }

LinkedList
LinkedList គឺជា structure មួយសំរាប់ store elements ហើយវា link ជាប់គ្នា
public class LinkListDemo { public static void main(String[] args) { LinkedList<Integer> num = new LinkedList<>(); num.add(10); num.add(23); num.add(35); num.add(60); System.out.println(num); } }

public class LinkListDemo { public static void main(String[] args) { LinkedList<Integer> num = new LinkedList<>(); num.add(10); num.add(23); num.add(35); num.add(60); System.out.println(num); num.add(1, 15); System.out.println(num); } }

public class LinkListDemo { public static void main(String[] args) { LinkedList<Integer> num = new LinkedList<>(); num.add(10); num.add(23); num.add(35); num.add(60); System.out.println(num); num.add(1, 15); System.out.println(num); num.remove(1); System.out.println(num); } }

ការយកធាតុរបស់វាមកប្រើ
public class LinkListDemo { public static void main(String[] args) { LinkedList<Integer> num = new LinkedList<>(); num.add(10); num.add(23); num.add(35); num.add(60); System.out.println(num); Iterator<Integer> itr = num.iterator(); while(itr.hasNext()) { System.out.println(itr.next()); } } }

Set
Set វាសំរាប់ផ្ទុក element ប៉ុន្តែមិនអាច ផ្ទុកផ្ទួនបានទេ ហើយវាមិនផ្ទុកមិនទៅតាមលំដាប់។ នៅក្នុងមេរៀន set នេះមានពីរគឺ HashSet និង TreeSetHashSet
HashSet គឺជា Set ហើយវាមានពីរលក្ខណសំខានៗរបស់គឺ៖– HashSet វាសំរាប់ store element ដែលប្រើ algorithm មួយដែលហៅថា hashing។
hashing គឺជាការបង្កើត hash កូដមួយ ដែល hash កូដនឹងប្រើសំរាប់តំណាងឲ្យ element មួយៗ ដើម្បីប្រាកដថា element ត្រូវតែជា unit (ដែលកំណត់ថាវាមិនអាចផ្ទួនបាន)public class HashSetDemo { public static void main(String[] args) { HashSet<String> animal = new HashSet<String>(); animal.add("Cow"); animal.add("Dog"); animal.add("Mankey"); animal.add("Cat"); System.out.println(animal); } }

public class HashSetDemo { public static void main(String[] args) { HashSet<String> animal = new HashSet<String>(); animal.add("Cow"); animal.add("Dog"); animal.add("Mankey"); animal.add("Cat"); System.out.println(animal); animal.remove("Mankey"); System.out.println(animal); } }

public class HashSetDemo { public static void main(String[] args) { HashSet<String> animal = new HashSet<String>(); animal.add("Cow"); animal.add("Dog"); animal.add("Mankey"); animal.add("Cat"); System.out.println(animal); animal.remove("Mankey"); System.out.println(animal); Iterator<String> elements = animal.iterator(); while (elements.hasNext()) { System.out.println(elements.next()); } } }

TreeSet
TreeSet វាដូចទៅនឹង hashSet ដែរ ប៉ុន្តែ TreeSet វាមានជា auto sort ដោយវាមាន ascending order និង descending order។
public class TreeSetDemo { public static void main(String[] args) { TreeSet<String> animal = new TreeSet<String>(); animal.add("Cow"); animal.add("Dog"); animal.add("Mankey"); animal.add("Cat"); animal.add("Frog"); System.out.println(animal); } }

public class TreeSetDemo { public static void main(String[] args) { TreeSet<String> animal = new TreeSet<String>(); animal.add("Cow"); animal.add("Dog"); animal.add("Mankey"); animal.add("Cat"); animal.add("Frog"); System.out.println(animal); System.out.println(animal.descendingSet()); } }

Map
Map វាក៏ជាប្រភេទ collection ផងដែរ វាជាប្រភេទផ្ទុក value ហើយសំរាប់ value នីមួយៗមាន Key និង value ហើយ key និង value pair គេអាចហៅម្យ៉ាងទៀតបានថា entry។ Map គឺ key វាមិនអាចផ្ទួនគ្នាបានទេ ប៉ុន្តែ សំរាប់ value វាអាចផ្ទួនគ្នាបាន។ នៅពេលយើងចង់ add, delete, update.. ទៅតាម Key
HashMap
- តំលៃរបស់វាផ្ទកទៅតាម key
- វាផ្ទកតំលៃជា unique
- Key វាអាចមាន null តែមួយ ប៉ុន្តែ value វាអាចមាន null បានច្រើន
- ការផ្ទកដូចទៅនឹង HashSet ដែរ គឺវាមិន order។
public class HashMapDemo { public static void main(String[] args) { HashMap<String, String> countries = new HashMap<>(); countries.put("EN", "England"); countries.put("UK", "United Kingdom"); countries.put("CA", "Cambodia"); countries.put("US", "United State"); System.out.println(countries); } }នៅពេលយើងហៅវាមកប្រើ HashMap<K, V>
- K = Key
- V = Value

Update ក្នុងការ update ដោយប្រើ replace
countries.replace("US", "United States");ហើយសំរាប់ remove យើងត្រូវតែ remove តាម key
countries.remove("US");
របៀប loop វាចេញ
public class HashMapDemo {public class HashMapDemo { public static void main(String[] args) { HashMap<String, String> countries = new HashMap<>(); countries.put("EN", "England"); countries.put("UK", "United Kingdom"); countries.put("CA", "Cambodia"); countries.put("US", "United State"); System.out.println(countries); for(Map.Entry<String, String> mapEntry:countries.entrySet()) { System.out.println(mapEntry.getKey()+":"+mapEntry.getValue()); } } }

TreeMap
វាដូចទៅនឹង HashMap ប៉ុន្តែវាខុសត្រូវថាវាគ្មាន null key និងវា sorted ឲ្យយើងដោយស្វ័យប្រវត្តិ ហើយវា sorted តាម key។
public class TreeMamDemo { public static void main(String[] args) { TreeMap<Integer, String> treeMap = new TreeMap<>(); treeMap.put(4, "Dog"); treeMap.put(1, "Cow"); treeMap.put(6, "Cat"); treeMap.put(2, "Mankey"); System.out.println(treeMap); } }

Hashtable
Hashtable ដូចទៅនឹង hashMap និង treeMap ដែរ ប៉ុន្តែខុសវាត្រង់ថាវាគ្មាន null key និង null value ហើយវាជាប្រភេទ syschronized។
public class HashTableDemo { public static void main(String[] args) { Hashtable<Integer, String> person = new Hashtable<>(); person.put(1, "Dul"); person.put(2, "Keo"); person.put(3, "Dara"); System.out.println(person); } }

0 Comments