Kelas Koleksi mengandungi kaedah statik untuk melaksanakan operasi biasa dalam koleksi dan senarai. Bahagian ini memperkenalkan beberapa kaedah statik dalam kelas Koleksi untuk senarai tatasusunan. Kelas Koleksi mengandungi isihan, carian binari, terbalik, kocok, salinan , dan kaedah isi untuk senarai dan kaedah maks, min, pecah dan frekuensi untuk koleksi, seperti yang ditunjukkan dalam Rajah di bawah.
Anda boleh mengisih elemen setanding dalam senarai dalam susunan semula jadi dengan kaedah compareTo dalam antara muka Comparable. Anda juga boleh menentukan pembanding untuk mengisih elemen. Contohnya, kod berikut mengisih rentetan dalam senarai.
Senaraikan
Collections.sort(list);
System.out.println(senarai);
Outputnya ialah [biru, hijau, merah].
Kod sebelumnya mengisih senarai dalam tertib menaik. Untuk mengisihnya dalam tertib menurun, anda hanya boleh menggunakan kaedah Collections.reverseOrder() untuk mengembalikan objek Comparator yang menyusun elemen secara terbalik dari susunan semula jadinya. Contohnya, kod berikut mengisih senarai rentetan dalam tertib menurun.
Senaraikan
Collections.sort(list, Collections.reverseOrder());
System.out.println(senarai);
Keluaran ialah [kuning, merah, hijau, biru].
Anda boleh menggunakan kaedah binarySearch untuk mencari kunci dalam senarai. Untuk menggunakan kaedah ini, senarai mesti diisih mengikut urutan yang semakin meningkat. Jika kunci tiada dalam senarai, kaedah akan kembali -(titik sisipan +1). Ingat bahawa titik sisipan adalah tempat item akan jatuh dalam senarai jika ia ada. Contohnya, kod berikut mencari kunci dalam senarai integer dan senarai rentetan.
Senaraikan
System.out.println("(1) Index: " + Collections.binarySearch(list1, 7));
System.out.println("(2) Index: " + Collections.binarySearch(list1, 9));
Senaraikan
System.out.println("(3) Indeks: " +
Collections.binarySearch(list2, "red"));
System.out.println("(4) Indeks: " +
Collections.binarySearch(list2, "cyan"));
Keluaran kod sebelumnya ialah:
(1) Indeks: 2
(2) Indeks: -4
(3) Indeks: 2
(4) Indeks: -2
Anda boleh menggunakan kaedah terbalikkan untuk membalikkan elemen dalam senarai. Contohnya, kod berikut memaparkan [biru, hijau, merah, kuning].
Senaraikan
Collections.reverse(list);
System.out.println(senarai);
Anda boleh menggunakan kaedah kocok(Senarai) untuk menyusun semula unsur-unsur dalam senarai secara rawak. Contohnya, kod berikut merombak elemen dalam senarai.
Senaraikan
Collections.shuffle(list);
System.out.println(senarai);
Anda juga boleh menggunakan kaedah kocok(Senarai, Rawak) untuk menyusun semula unsur-unsur dalam senarai secara rawak dengan objek Rawak yang ditentukan. Menggunakan objek Rawak yang ditentukan berguna untuk menjana senarai dengan jujukan elemen yang sama untuk senarai asal yang sama. Contohnya, kod berikut merombak elemen dalam senarai.
Senaraikan
Senaraikan
Collections.shuffle(senarai1, Rawak baharu(20));
Collections.shuffle(senarai2, Rawak baharu(20));
System.out.println(senarai1);
System.out.println(senarai2);
Anda akan melihat bahawa senarai1 dan senarai2 mempunyai jujukan elemen yang sama sebelum dan selepas kocok.
Anda boleh menggunakan kaedah copy(det, src) untuk menyalin semua elemen daripada senarai sumber ke senarai destinasi pada indeks yang sama. Senarai destinasi mestilah sama panjang dengan senarai sumber. Jika lebih panjang, elemen yang tinggal dalam senarai sumber tidak terjejas. Contohnya, yang berikut
salinan kod senarai2 ke senarai1.
Senaraikan
Senaraikan
Collections.copy(list1, list2);
System.out.println(senarai1);
Output untuk list1 ialah [putih, hitam, hijau, biru]. Kaedah salinan melakukan salinan cetek: hanya rujukan elemen daripada senarai sumber disalin.
Anda boleh menggunakan kaedah nCopies(int n, Object o) untuk mencipta senarai tidak berubah yang terdiri daripada n salinan objek yang ditentukan. Contohnya, kod berikut mencipta senarai dengan lima objek Kalendar.
Senaraikan
Senarai yang dibuat daripada kaedah nCopies tidak boleh diubah, jadi anda tidak boleh menambah, mengalih keluar atau mengemas kini elemen dalam senarai. Semua elemen mempunyai rujukan yang sama.
Anda boleh menggunakan kaedah isi(Senarai Senarai, Objek o) untuk menggantikan semua elemen dalam senarai dengan elemen yang ditentukan. Contohnya, kod berikut memaparkan [hitam, hitam, hitam].
Senaraikan
Collections.fill(senarai, "hitam");
System.out.println(senarai);
Anda boleh menggunakan kaedah maks dan min untuk mencari elemen maksimum dan minimum dalam koleksi. Elemen mesti setanding menggunakan antara muka Sebanding atau antara muka Pembanding. Contohnya, kod berikut memaparkan rentetan terbesar dan terkecil dalam koleksi.
Koleksi
System.out.println(Collections.max(collection));
System.out.println(Collections.min(collection));
Kaedah disjoint(collection1, collection2) mengembalikan true jika kedua-dua koleksi tidak mempunyai unsur persamaan. Contohnya, dalam kod berikut, disjoint(collection1, collection2) mengembalikan false, tetapi disjoint(collection1, collection3) mengembalikan true .
Koleksi
Koleksi
Koleksi
System.out.println(Collections.disjoint(collection1, collection2));
System.out.println(Collections.disjoint(collection1, collection3));
Kaedah frekuensi(koleksi, elemen) mencari bilangan kejadian unsur dalam koleksi. Contohnya, frekuensi(koleksi, "merah") mengembalikan 2 dalam kod berikut.
Koleksi
System.out.println(Collections.frequency(koleksi, "merah"));
Atas ialah kandungan terperinci Kaedah Statik untuk Senarai dan Koleksi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!