Java Collections Framework
Introduction to Collections Framework
यदि आपने data structures पहले से पढ़ रखा है तो java collections आप आसानी से समझ सकते है। Java में बहुत सारे objects को एक साथ organize करने के लिए कुछ data structures (set, list, queue and array) यूज़ किये जाते है। इन data structures को java में collections कहते है। इन data structure के collection को collection framework कहा जाता है। इन collections की मदद से आप objects के साथ वो सभी operations ( searching, sorting, insertion, deletion आदि) perform कर सकते है। जो आप normal data के साथ करते है।
Collections framework में आपके काम को आसान बनाने के लिए पहले से ही classes और interfaces provide किये गए है। ये classes इन interfaces को implement करती है। इन classes को extend करके आप आसानी से objects को organize कर सकते है। आपको अलग से data structure क्रिएट करने की जरुरत नहीं है। Collections framework के सभी interfaces और classes generic है, इसलिए object का type आप collection क्रिएट करते समय देते है। इन interfaces और classes के बारे में निचे दिया जा रहा है।
Collection Interface
Collections framework के सभी interfaces collection interface को by default implement करते है। Collection interface ऐसे बहुत सारे methods provide करता है जो आप objects को manage करने के लिए यूज़ करेंगे। इन सभी methods की list निचे दी जा रही है।
Methods | Description |
---|---|
Boolean add(E obj) | इस method के द्वारा आप collection में object add करते है। |
Void clear() | ये method call होने पर collection के सभी objects को remove कर देता है। |
Boolean contains(Object obj) | इस method के द्वारा आप collection में object search कर सकते है। यदि object मिलता है तो ये method true return करता है। |
Boolean equals(Object obj) | ये method calling collection के object से pass किये गए object को compare करता है और equal होने पर true return करता है। |
Boolean isEmpty() | यदि call करने वाला collection empty होता है तो ये method true return करता है। |
List Interface
ArrayList और LinkedList classes list interface को implement करती है। ये classes objects को list की तरह store करती है। एक list collection में आप duplicate objects भी store कर सकते है। इन classes का object create करके आप objects को list की तरह store कर सकते है।
ArrayList
ArrayList
arrList.add(obj1);
arrList.add(obj2);
arrList.add(obj3);
LinkedList
LinkedList
linklist.add(obj1);
linklist.add(obj2);
linklist.add(obj3);
Set Interface
HashSet or TreeSet classes set interface को implement करती है। Set collection में objects किसी set की तरह ही store किये जाते है। इसमें आप duplicate objects नहीं store कर सकते है। इन दोनों में से किसी भी class का object create करके आप set collection क्रिएट कर सकते है।
HashSet
HashSet<objType> hSet = new HashSet<objType>();
hSet.add(obj1);
hSet.add(obj2);
TreeSet
TreeSet<objType> tSet = new TreeSet<objType>();
tSet.add();
tSet.add();
Queue Interface
Queue interface को PriorityQueue class implement करती है। जब भी आप इस collection में objects store करते है तो वे First In First Out की form में store होता है।
PriorityQueue
PriorityQueue<objType> pQueue = new PriorityQueue<objType>();
pQueue.add(obj1);
pQueue.add(obj2);
Map Interface
HashMap और TreeMap class Map interface को implement करती है। Map collection में data key और value के pair में store किया जाता है। हर element को store और access करने के लिए key यूज़ की जाती है। Map collection में elements unique होते है।
HashMap
HashMap<objType> hMap = new HashMap<objType>();
hMap.add(key,obj1);
hMap.add(key.obj2);
TreeMap
TreeMap<objType> tMap = new TreeMap<objType>();
tMap.add(key,obj1);
tMap.add(key,obj2);
Iterator Interface
Collection interface की तरह ही सभी interface Iterator interface को भी by default implement करते है। ये interface iterator(), hasNext() और next() methods provide करता है। इन methods की मदद से आप अपने collection को traverse कर सकते है। सबसे पहले आप collection पर iterator() method call करते है। ये method collection के first element की index return करता है। इसको आप iterator interface के reference variable में store करवाते है। इसके बाद आप hasNext() method को यूज़ करते हुए loop चलाते है। और next() method के द्वारा collection की सभी values को traverse करते है।
ArrayList<objType> aList = new ArrayList<objType>();
aList.add(key,obj1);
aList.add(key,obj2);
Iterator<objType> itr = aList.iterator();
while(itr.hasNext())
{
System.out.println(itr.next());
}