Java To’plamlar (Collections)

Java dasturlash tilida Collections nomli freymvork obyektlar to’plamini saqlash va qayta ishlash mo’ljallangan. Ushbu freymvork ma’lumot ustida bajarish mumkin bo’lgan barcha operatsiyalarni ta’minlaydi: izlash, tartiblash, qayta ishlash va o’chirish.

Tabiiyki, ba’zi o’quvchilarimizda “freymvork” o’zi nima degan savol tug’ildi.

Freymvork (Framework) - ko’plab dasturchilar tomonidan sinalgan va foydalanish uchun tayyor struktura. Afzalliklari:

  • Xavfsiz kod
  • Testlash uchun oson
  • Duplikatsiyadan qochish
  • Optimal va moslashuvchan kod

Collections freymvorki obyektlar guruhini bir birlik sifatida qarab, ular ustida amallar bajarishni anglatadi. Bu freymvork ko’plab interfeyslar (Set, List, Queue) va classlar (ArrayList, LinkedList, PriorityQueue, HashSet, TreeSet) dan iborat.

JDK (Java Development Kit) ning java.util papkasi Collections freymvorkining barcha class va interfeyslarini o’z ichiga oladi.

Hierarchy of Java Collection framework

Iterable interfeysi - barcha collection classlarning asosi hisoblanadi. Collection interfeysi ushbu interfeysdan meros oladi va Collectionning barcha sub-classlari Iterable interfeysini implementatsiya qiladi. Ushbu interfeys faqatgina bitta abstract classdan iborat:

Iterator<T> iterator()

Iterator interfeysi - elementlarni faqat oldinga yo'nalishda iteratsiya qilish imkoniyatini beradi. Ushbu interfeys 3 ta metoddan iborat:

  • public boolean hasNext() - ushbu metod yana element bor yoki yo’qligini aniqlaydi va Boolean qiymat qaytaradi.
  • public Object next() - ushbu metod elementni qaytaradi va keyingi elementga ko’rsatgichni ulaydi.
  • public void remove() - iterator tomonidan qaytarilgan oxirgi elementni o’chiradi.

Collection interfeysi - ushbu freymvorkdagi barcha sub-classlar tomonidan implementatsiya qilinadigan interfeys hisoblanadi. U har bir to’plam foydalanishi mumkin bo’lgan metodlardan iborat.

Collection interfeysi to’plamlar ustida ishlash uchun ko’plab maxsus metodlarga ega. Ularning ba’zilarini quyida ko’rib o’tamiz:

  • public boolean add(E e) - to’plamga yangi element qo’shadi
  • public boolean addAll(Collection<? extends E> c) - berilgan to’plamning barcha elementlarini ikkinchi to’plamga qo’shadi
  • public boolean remove(Object element) - to’plamdan elementni o’chiradi
  • public boolean removeAll(Collection<?> c) - berilgan to’plamning barcha elementlarini ikkinchi to’plamdan o’chiradi
  • default boolean removeIf(Predicate<? super E> filter) - biror to’plamdan berilgan shartni qanoatlantiruvchi barcha elementlarni o’chiradi
  • public boolean retainAll(Collection<?> c) - biror to’plamdan barcha elementlarini o’chiradi, faqat berilgan to’plamning mos elementlarini qoldiradi.
  • public int size() - to’plamdagi barcha elementlar sonini qaytaradi
  • public void clear() - to’plamning barcha elementlarini o’chiradi
  • public boolean contains(Object element) - to’plamdan berilgan elementni qidiradi
  • public boolean containsAll(Collection<?> c) - to’plamdan berilgan qism to’plamni qidiradi
  • public Object[] toArray() - to’plamni massiv shakliga aylantiradi
  • public boolean isEmpty() - to’plamni bo’shlikka tekshiradi
  • public boolean equals(Object element) - ikkita to’plamni taqqoslaydi