informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
milik Jawajava.util.Collections
Kelas menyediakan sekumpulan metode statis untuk memanipulasi atau mengembalikan koleksi (seperti daftar, kumpulan, dan peta).Collections
Kelas adalah kelas utilitas yang dirancang untuk menyediakan algoritma dan operasi yang mudah pada koleksi.Berikut pasangannyaCollections
Pengenalan kelas dan metode yang umum digunakan.
sort(List<T> list)
、sort(List<T> list, Comparator<? super T> c)
binarySearch(List<? extends Comparable<? super T>> list, T key)
、binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
reverse(List<?> list)
rotate(List<?> list, int distance)
fill(List<? super T> list, T obj)
copy(List<? super T> dest, List<? extends T> src)
min(Collection<? extends T> coll)
、max(Collection<? extends T> coll)
synchronizedList(List<T> list)
、synchronizedSet(Set<T> s)
、synchronizedMap(Map<K, V> m)
unmodifiableList(List<? extends T> list)
、unmodifiableSet(Set<? extends T> s)
、unmodifiableMap(Map<? extends K, ? extends V> m)
sort(List<T> list)
: Mengurutkan daftar dalam urutan menaik, elemen dalam daftar harus diterapkanComparable
antarmuka.- List<Integer> numbers = Arrays.asList(5, 3, 1, 4, 2);
- Collections.sort(numbers); // 排序后,numbers为 [1, 2, 3, 4, 5]
sort(List<T> list, Comparator<? super T> c)
: Mengurutkan daftar menurut pembanding yang ditentukan.- List<String> names = Arrays.asList("Charlie", "Alice", "Bob");
-
- // 根据字符串长度排序
- Collections.sort(names, (s1, s2) -> s1.length() - s2.length());
-
-
-
Catatan: Collections.sort(names, (s1, s2) -> s1.length() - s2.length()) (s1, s2) -> s1.length() - s2.length() Ini adalah Ekspresi Lambda digunakan untuk mengimplementasikan metode perbandingan antarmuka Komparator.
binarySearch(List<? extends Comparable<? super T>> list, T key)
: Gunakan pencarian biner untuk menemukan elemen dalam daftar dan mengembalikan indeks. Daftarnya harus diurutkan.- List<Integer> sortedNumbers = Arrays.asList(1, 2, 3, 4, 5);
- int index = Collections.binarySearch(sortedNumbers, 3); // 返回索引 2
binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
: Gunakan pencarian biner untuk menemukan elemen dalam daftar pembanding yang ditentukan.- List<String> sortedNames = Arrays.asList("Alice", "Bob", "Charlie");
- int index = Collections.binarySearch(sortedNames, "Bob", String::compareTo); // 返回索引 1
max(Collection<? extends T> coll)
: Mengembalikan elemen terbesar dalam koleksi.- List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
- int max = Collections.max(numbers); // 返回 5
min(Collection<? extends T> coll)
: Mengembalikan elemen terkecil dalam himpunan.int min = Collections.min(numbers); // 返回 1
reverse(List<?> list)
: Membalikkan elemen dalam daftar.- List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
- Collections.reverse(numbers); // 反转后,numbers为 [5, 4, 3, 2, 1]
shuffle(List<?> list)
: Mengacak daftar secara acak.Collections.shuffle(numbers); // numbers的元素顺序将被随机打乱
fill(List<? super T> list, T obj)
: Ganti semua elemen dalam daftar dengan elemen yang ditentukan.- List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
- Collections.fill(list, "z"); // list 现在是 ["z", "z", "z"]
copy(List<? super T> dest, List<? extends T> src)
: Menyalin semua elemen dalam daftar sumber ke daftar target.- List<String> dest = Arrays.asList(new String[3]);
- List<String> src = Arrays.asList("a", "b", "c");
- Collections.copy(dest, src); // dest 现在是 ["a", "b", "c"]
unmodifiableList(List<? extends T> list)
: Mengembalikan tampilan yang tidak dapat dimodifikasi.- List<String> list = Arrays.asList("a", "b", "c");
- List<String> unmodifiableList = Collections.unmodifiableList(list);
- // unmodifiableList.add("d"); // 会抛出 UnsupportedOperationException
synchronizedList(List<T> list)
: Mengembalikan daftar thread-safe.- List<String> list = new ArrayList<>();
- List<String> syncList = Collections.synchronizedList(list);
Berikut adalah contoh komprehensif yang ditampilkanCollections
Beberapa metode kelas yang umum:
- import java.util.*;
-
- public class CollectionsExample {
- public static void main(String[] args) {
- List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 4, 2));
-
- // 排序
- Collections.sort(numbers);
- System.out.println("排序后: " + numbers);
-
- // 反转
- Collections.reverse(numbers);
- System.out.println("反转后: " + numbers);
-
- // 随机打乱
- Collections.shuffle(numbers);
- System.out.println("随机打乱后: " + numbers);
-
- // 查找最大和最小值
- int max = Collections.max(numbers);
- int min = Collections.min(numbers);
- System.out.println("最大值: " + max + ", 最小值: " + min);
-
- // 二分搜索
- Collections.sort(numbers);
- int index = Collections.binarySearch(numbers, 3);
- System.out.println("元素 3 的索引: " + index);
-
- // 同步集合
- List<String> syncList = Collections.synchronizedList(new ArrayList<>());
- syncList.add("a");
- syncList.add("b");
- System.out.println("同步集合: " + syncList);
- }
- }
dengan menggunakanCollections
Metode yang disediakan oleh kelas ini dapat dengan mudah melakukan berbagai operasi pada koleksi, meningkatkan keterbacaan dan pemeliharaan kode.