1. Dhaftar cara

Elinga yen pangripta Jawa nulis kabeh kelas helper sing diarani Arrayskanggo penak nalika nggarap array?

Padha nindakake bab sing padha kanggo koleksi. Jawa nduweni java.util.Collectionskelas sing nduweni akeh metode sing migunani kanggo nggarap koleksi. Ing ngisor iki mung sing paling menarik:

Metode Katrangan
addAll(colls, e1, e2, e3, ...)
Nambahake unsur e1, e2, e3, ... menyang collskoleksi
fill(list, obj)
Ngganti kabeh unsur ing dhaftar liwati karoobj
nCopies(n, obj)
Ngasilake dhaptar nsalinan objobyek
replaceAll(list, oldVal, newVal)
Ngganti kabeh kedadean oldValkaro newValing listdhaftar
copy(dest, src)
Nyalin kabeh unsur saka srcdhaptar menyang destdhaptar
reverse(list)
Mbalik dhaptar.
sort(list)
Ngurutake dhaptar ing urutan munggah
rotate(list, n)
Siklus nggeser unsur dhaptar listkanthi nunsur
shuffle(list)
Ngacak unsur ing dhaptar kanthi acak
min(colls)
Nemokake unsur minimal ing collskoleksi
max(colls)
Nemokake unsur maksimum ing collskoleksi
frequency(colls, obj)
Nemtokake kaping pirang-pirang objunsur kedadeyan ing collskoleksi
binarySearch(list, key)
Nggoleki keying dhaptar sing diurutake lan ngasilake indeks sing cocog.
disjoint(colls1, colls2)
Ngasilake trueyen koleksi ora ana unsur sing padha
penting:

Akeh cara iki ora nggunakake ArrayList, HashSetlan HashMapkelas saben, nanging karo antarmuka sing cocog: Collection<T>, List<T>, Map<K, V>.

Iki ora masalah: yen cara nampa a List<T>, sampeyan bisa tansah pass iku ArrayList<Integer>, nanging operator assignment ora bisa ing arah ngelawan.


2. Nggawe lan ngowahi koleksi

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

Cara addAll()nambah unsur e1, e2, e3, ... menyang collskoleksi Sembarang jumlah unsur bisa dilewati.

Kode Output 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)cara

Cara fill()ngganti kabeh unsur koleksi listkaro objunsur.

Kode Output 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)cara

Cara kasebut nCopies()ngasilake dhaptar nsalinan unsur kasebut obj. Elinga yen dhaptar bali ora bisa diganti, tegese sampeyan ora bisa ngganti! Sampeyan mung bisa nggunakake kanggo maca nilai:

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

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

for(String s: list)
   System.out.println(s);
Nggawe dhaftar immutable 5 Hellostrings
Nggawe mutable listlan isi karo nilai saka immutableListdhaftar.

Output konsol:
Hello
Hello
Hello
Hello
Hello

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

Cara replaceAll()ngganti kabeh unsur ing listkoleksi padha oldValuekaro newValue.

Kode Output 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)cara

Cara copy()nyalin kabeh unsur koleksi srcmenyang destkoleksi.

Yen destkoleksi diwiwiti luwih suwe tinimbang srckoleksi kasebut, unsur koleksi sing isih ana destbakal tetep utuh.

penting:
Koleksi destkudu paling sethithik minangka srckoleksi (yen ora, IndexOutOfBoundsExceptionbakal dibuwang).
Kode Output 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 unsur

Collections.reverse(List<T> list)cara

Cara kasebut reverse()mbalikke urutan unsur-unsur saka dhaptar sing dilewati.

Kode Output 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)cara

Cara sort()ngurutake dhaptar sing dilewati kanthi urutan munggah.

Kode Output 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)cara

Cara kasebut rotate()kanthi siklus nggeser unsur-unsur dhaptar sing dilewati kanthi distanceposisi maju.

Kode Output 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)cara

Cara kasebut shuffle()kanthi acak ngacak kabeh unsur saka dhaptar sing dilewati. Asil beda saben wektu.

Kode Output 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. Nemokake unsur ing koleksi

Collections.min(Collection<T> colls)cara

Cara min()ngasilake unsur minimal ing koleksi.

Kode Output 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)cara

Cara max()ngasilake unsur maksimum ing koleksi.

Kode Output 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)cara

Cara frequency()ngetung kaping pirang-pirang objunsur kedadeyan ing collskoleksi

Kode Output 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)cara

Cara binarySearch()nggoleki unsur objing collskoleksi. Ngasilake indeks saka unsur sing ditemokake. Ngasilake nomer negatif yen unsur ora ketemu.

penting:
Sadurunge nelpon binarySearch()cara, koleksi kudu diurutake (nggunakake Collections.sort()).
Kode Output 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)cara

Cara kasebut disjoint()bali trueyen koleksi sing dilewati ora duwe unsur sing umum.

Kode Output 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