1. Daftar metode

Ingat bahwa pembuat Java menulis seluruh kelas pembantu yang dipanggil Arraysuntuk kenyamanan kita saat bekerja dengan array?

Mereka melakukan hal yang sama untuk koleksi. Java memiliki java.util.Collectionskelas yang memiliki banyak metode yang berguna untuk bekerja dengan koleksi. Inilah yang paling menarik:

Metode Keterangan
addAll(colls, e1, e2, e3, ...)
Menambahkan elemen e1, e2, e3, ... ke collskoleksi
fill(list, obj)
Mengganti semua elemen dalam daftar yang diteruskan denganobj
nCopies(n, obj)
Mengembalikan daftar nsalinan objekobj
replaceAll(list, oldVal, newVal)
Menggantikan semua contoh oldValdengan newValdalam listdaftar
copy(dest, src)
Menyalin semua elemen dari srcdaftar ke destdaftar
reverse(list)
Membalik daftar.
sort(list)
Mengurutkan daftar dalam urutan menaik
rotate(list, n)
Secara siklis menggeser elemen daftar listberdasarkan nelemen
shuffle(list)
Mengacak elemen dalam daftar secara acak
min(colls)
Menemukan elemen minimum dalam collskoleksi
max(colls)
Menemukan elemen maksimum dalam collskoleksi
frequency(colls, obj)
Menentukan berapa kali objelemen muncul dalam collskoleksi
binarySearch(list, key)
Mencari keydalam daftar terurut dan mengembalikan indeks yang sesuai.
disjoint(colls1, colls2)
Mengembalikan truejika koleksi tidak memiliki elemen yang sama
Penting:

Banyak dari metode ini tidak menggunakan ArrayList, HashSetdan HashMapkelas itu sendiri, tetapi dengan antarmuka yang sesuai: Collection<T>, List<T>, Map<K, V>.

Ini bukan masalah: jika suatu metode menerima a List<T>, Anda selalu dapat meneruskannya ArrayList<Integer>, tetapi operator penugasan tidak bekerja ke arah yang berlawanan.


2. Membuat dan memodifikasi koleksi

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)metode

Metode addAll()menambahkan elemen e1, e2, e3, ... ke collskoleksi Sejumlah elemen apa pun dapat diteruskan.

Kode Keluaran konsol
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)metode

Metode fill()menggantikan semua elemen koleksi listdengan objelemen.

Kode Keluaran konsol
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)metode

Metode nCopies()mengembalikan daftar nsalinan elemen obj. Perhatikan bahwa daftar yang dikembalikan tidak dapat diubah, yang berarti Anda tidak dapat mengubahnya! Anda hanya dapat menggunakannya untuk membaca nilai:

Kode Keterangan
List<String> immutableList = Collections.nCopies(5, "Hello");

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

for(String s: list)
   System.out.println(s);
Buat daftar 5 Hellostring yang tidak dapat diubah
Buat yang dapat diubah listdan isi dengan nilai dari immutableListdaftar.

Keluaran konsol:
Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)metode

Metode ini replaceAll()menggantikan semua elemen dalam listkoleksi yang sama oldValuedengan newValue.

Kode Keluaran konsol
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)metode

Metode copy()menyalin semua elemen koleksi srcke dalam destkoleksi.

Jika destkoleksi dimulai lebih lama dari srckoleksi, maka elemen koleksi lainnya destakan tetap utuh.

Penting:
Koleksi destharus setidaknya selama srckoleksi (jika tidak, IndexOutOfBoundsExceptionakan dibuang).
Kode Keluaran konsol
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. Urutan elemen

Collections.reverse(List<T> list)metode

Metode reverse()membalik urutan elemen dari daftar yang diteruskan.

Kode Keluaran konsol
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)metode

Metode sort()mengurutkan daftar yang diteruskan dalam urutan menaik.

Kode Keluaran konsol
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)metode

Metode rotate()secara siklis menggeser elemen daftar yang diteruskan dengan distanceposisi ke depan.

Kode Keluaran konsol
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)metode

Metode shuffle()secara acak mengocok semua elemen dari daftar yang diteruskan. Hasilnya berbeda setiap saat.

Kode Keluaran konsol
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. Menemukan elemen dalam koleksi

Collections.min(Collection<T> colls)metode

Metode min()mengembalikan elemen minimum dalam koleksi.

Kode Keluaran konsol
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)metode

Metode max()mengembalikan elemen maksimum dalam koleksi.

Kode Keluaran konsol
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)metode

Metode frequency()menghitung berapa kali objelemen muncul dalam collskoleksi

Kode Keluaran konsol
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)metode

Metode binarySearch()mencari elemen objdalam collskoleksi. Mengembalikan indeks elemen yang ditemukan. Mengembalikan angka negatif jika elemen tidak ditemukan.

Penting:
Sebelum memanggil binarySearch()metode, koleksi harus disortir (gunakan Collections.sort()).
Kode Keluaran konsol
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)metode

Metode disjoint()kembali truejika koleksi yang diteruskan tidak memiliki elemen yang sama.

Kode Keluaran konsol
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