CodeGym /Java Kursu /Modül 1 /Koleksiyonlar — bir yardımcı sınıf

Koleksiyonlar — bir yardımcı sınıf

Modül 1
Seviye , Ders
Mevcut

1. Yöntem listesi

Java'nın yaratıcılarının, Arraysdizilerle çalışırken bize kolaylık olması için çağrılan koca bir yardımcı sınıf yazdığını hatırlıyor musunuz?

Koleksiyonlar için de aynı şeyi yaptılar. java.util.CollectionsJava , koleksiyonlarla çalışmak için yararlı olan birçok yöntemi olan bir sınıfa sahiptir . İşte sadece en ilginç olanlar:

Yöntemler Tanım
addAll(colls, e1, e2, e3, ...)
e1, e2, e3, ... öğelerini collskoleksiyona ekler
fill(list, obj)
Geçilen listedeki tüm öğeleri ile değiştirirobj
nCopies(n, obj)
nNesnenin kopyalarının objbir listesini döndürür
replaceAll(list, oldVal, newVal)
Listedeki tüm örneklerini oldValwith ile değiştirirnewVallist
copy(dest, src)
Listedeki tüm öğeleri srclisteye kopyalardest
reverse(list)
Listeyi tersine çevirir.
sort(list)
Listeyi artan düzende sıralar
rotate(list, n)
Listenin öğelerini öğelere listgöre döngüsel olarak kaydırırn
shuffle(list)
Listedeki öğeleri rastgele karıştırır
min(colls)
collsKoleksiyondaki minimum öğeyi bulur
max(colls)
collsKoleksiyondaki maksimum öğeyi bulur
frequency(colls, obj)
Öğenin koleksiyonda kaç kez objgeçtiğini belirlercolls
binarySearch(list, key)
Sıralanmış bir listede arar keyve karşılık gelen dizini döndürür.
disjoint(colls1, colls2)
trueKoleksiyonların ortak öğeleri yoksa döner
Önemli:

ArrayListBu yöntemlerin çoğu , HashSetve sınıflarını kendi başına kullanmaz HashMap, ancak karşılık gelen arabirimlerle: Collection<T>, List<T>, Map<K, V>.

Bu bir sorun değil: eğer bir metot a kabul ederse List<T>, onu her zaman an iletebilirsiniz ArrayList<Integer>ama atama operatörü ters yönde çalışmaz.


2. Koleksiyon oluşturma ve değiştirme

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)yöntem

Yöntem , , , ... öğelerini koleksiyona addAll()ekler Herhangi bir sayıda öğe iletilebilir.e1e2e3colls

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

for (int i: list)
   System.out.println(i);
1
2
3
4
5

Collections.fill(List<T> list, T obj)yöntem

Yöntem fill(), koleksiyonun tüm öğelerini listöğeyle değiştirir obj.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.fill(list, 10);

for (int i: list)
   System.out.println(i);
10
10
10

Collections.nCopies(int n, T obj)yöntem

Yöntem , öğenin kopyalarının nCopies()bir listesini döndürür . Döndürülen listenin değişmez olduğuna dikkat edin, yani değiştiremezsiniz! Yalnızca değerleri okumak için kullanabilirsiniz:nobj

kod Tanım
List<String> immutableList = Collections.nCopies(5, "Hello");

ArrayList<String> list = new ArrayList<String>(immutableList);

for(String s: list)
   System.out.println(s);
5 Hellodizgiden oluşan değişmez bir liste oluşturun
Değişken oluşturun listve onu listedeki değerlerle doldurun immutableList.

Konsol çıktısı:
Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)yöntem

Yöntem replaceAll(), koleksiyondaki tüm öğeleri listeşittir ile oldValuedeğiştirir newValue.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.replaceAll(list, 2, 20);

for (int i: list)
   System.out.println(i);
1
20
3

Collections.copy (List<T> dest, List<T> src)yöntem

Yöntem copy(), koleksiyonun tüm öğelerini srckoleksiyona kopyalar dest.

Koleksiyon, destkoleksiyondan daha uzun süre başlarsa src, koleksiyonun geri kalan öğeleri destbozulmadan kalacaktır.

Önemli:
Koleksiyon desten az koleksiyon kadar olmalıdır src(aksi takdirde an IndexOutOfBoundsExceptionatılacaktır).
kod Konsol çıkışı
ArrayList<Integer> srcList = new ArrayList<Integer>();
Collections.addAll(srcList, 99, 98, 97);

ArrayList<Integer> destList = new ArrayList<Integer>();
Collections.addAll(destList, 1, 2, 3, 4, 5, 6, 7);

Collections.copy(destList, srcList);

for (int i: destList)
   System.out.println(i);
99
98
97
4
5
6
7


3. Öğelerin sırası

Collections.reverse(List<T> list)yöntem

Yöntem reverse(), geçirilen listenin öğelerinin sırasını tersine çevirir.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.reverse(list);

for (int i: list)
   System.out.println(i);
5
4
3
2
1

Collections.sort(List<T> list)yöntem

Yöntem sort(), geçen listeyi artan düzende sıralar.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

Collections.sort(list);

for (int i: list)
   System.out.println(i);
2
4
11
15
23

Collections.rotate(List<T> list, int distance)yöntem

Yöntem rotate(), geçirilen listenin öğelerini döngüsel olarak distanceileri konumlara kaydırır.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9);

Collections.rotate(list, 3); // Shift by 3 positions

for (int i: list)
   System.out.println(i);
7
8
9
1
2
3
4
5
6

Collections.shuffle(List<T> list)yöntem

Yöntem shuffle(), geçirilen listenin tüm öğelerini rasgele karıştırır. Sonuç her seferinde farklıdır.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.shuffle(list); // Shuffle the elements

for (int i: list)
   System.out.println(i);
5
2
4
3
1


4. Koleksiyonlardaki öğeleri bulma

Collections.min(Collection<T> colls)yöntem

Yöntem min(), koleksiyondaki minimum öğeyi döndürür.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int min = Collections.min(list);

System.out.println(min);
2

Collections.max(Collection<T> colls)yöntem

Yöntem max(), koleksiyondaki maksimum öğeyi döndürür.

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int max = Collections.max(list);

System.out.println(max);
23

Collections.frequency(Collection<T> colls, T obj)yöntem

Yöntem , öğenin koleksiyonda frequency()kaç kez oluştuğunu sayar .objcolls

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15, 4, 2, 4);

int count = Collections.frequency(list, 4);

System.out.println(count);
3

Collections.binarySearch(Collection<T> colls, T obj)yöntem

Yöntem , koleksiyondaki öğeyi binarySearch()arar . Bulunan öğenin dizinini döndürür. Öğe bulunamazsa negatif bir sayı döndürür.objcolls

Önemli:
Yöntemi çağırmadan önce binarySearch()koleksiyon sıralanmalıdır (kullanın Collections.sort()).
kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 5, 15, 4, 2, 4);

Collections.sort(list);  // 2, 2, 4, 4, 5, 11, 15, 23

int index = Collections.binarySearch(list, 5);    // 4
System.out.println(index);

int index2 = Collections.binarySearch(list, 15);  // 6
System.out.println(index2);

int index3 = Collections.binarySearch(list, 16); // The element doesn't exist
System.out.println(index3);
4
6
-8

Collections.disjoint(Collection<T> coll1, Collection<T> coll2)yöntem

Yöntem , geçirilen koleksiyonların ortak öğeleri yoksa disjoint()döndürür .true

kod Konsol çıkışı
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7);

ArrayList<Integer> list2 = new ArrayList<Integer>();
Collections.addAll(list2, 99, 98, 97);

boolean isDifferent = Collections.disjoint(list, list2);
System.out.println(isDifferent);
true

Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION