Rumah  >  Artikel  >  Java  >  Kaedah Statik untuk Senarai dan Koleksi

Kaedah Statik untuk Senarai dan Koleksi

WBOY
WBOYasal
2024-07-16 16:57:12486semak imbas

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.

Image description

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 list = Arrays.asList("merah", "hijau", "biru");
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 list = Arrays.asList("kuning", "merah", "hijau", "biru");
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 list1 = Arrays.asList(2, 4, 7, 10, 11, 45, 50, 59, 60, 66);
System.out.println("(1) Index: " + Collections.binarySearch(list1, 7));
System.out.println("(2) Index: " + Collections.binarySearch(list1, 9));

Senaraikan list2 = Arrays.asList("biru", "hijau", "merah");
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 list = Arrays.asList("kuning", "merah", "hijau", "biru");
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 list = Arrays.asList("kuning", "merah", "hijau", "biru");
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 list1 = Arrays.asList("kuning", "merah", "hijau", "biru");
Senaraikan list2 = Arrays.asList("kuning", "merah", "hijau", "biru");
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 list1 = Arrays.asList("kuning", "merah", "hijau", "biru");
Senaraikan list2 = Arrays.asList("putih", "hitam");
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 list1 = Collections.nCopies(5, new GregorianCalendar(2005, 0, 1));

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 list = Arrays.asList("merah", "hijau", "biru");
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 koleksi = Arrays.asList("merah", "hijau", "biru");
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 collection1 = Arrays.asList("red", "cyan");
Koleksi collection2 = Arrays.asList("merah", "biru");
Koleksi collection3 = Arrays.asList("pink", "tan");
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 koleksi = Arrays.asList("red", "cyan", "red");
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Antara Muka PembandingArtikel seterusnya:Antara Muka Pembanding