Κοινή χρήση τεχνολογίας

Εισαγωγή στην τάξη java Collections

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

της Javajava.util.CollectionsΟι κλάσεις παρέχουν ένα σύνολο στατικών μεθόδων για τον χειρισμό ή την επιστροφή συλλογών (όπως λίστες, σύνολα και χάρτες).Collections Το Class είναι μια τάξη βοηθητικού προγράμματος που έχει σχεδιαστεί για να παρέχει βολικούς αλγόριθμους και λειτουργίες σε συλλογές.Το παρακάτω είναι το ζευγάριCollectionsΕισαγωγή στις τάξεις και στις συνήθεις μεθόδους τους.

Σύνοψη κοινών μεθόδων

  • είδος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): Ταξινομήστε τη λίστα με αύξουσα σειρά, τα στοιχεία στη λίστα πρέπει να υλοποιηθούνComparableδιεπαφή.
  1. List<Integer> numbers = Arrays.asList(5, 3, 1, 4, 2);
  2. Collections.sort(numbers); // 排序后,numbers为 [1, 2, 3, 4, 5]
  • sort(List<T> list, Comparator<? super T> c): Ταξινομεί τη λίστα σύμφωνα με τον καθορισμένο συγκριτή.
  1. List<String> names = Arrays.asList("Charlie", "Alice", "Bob");
  2. // 根据字符串长度排序
  3. Collections.sort(names, (s1, s2) -> s1.length() - s2.length());

Σημείωση: Collections.sort(names, (s1, s2) -&gt; s1.length() - s2.length()) (s1, s2) -&gt; s1.length() - s2.length() Αυτή είναι μια έκφραση λάμδα χρησιμοποιείται για την υλοποίηση της μεθόδου σύγκρισης της διεπαφής Comparator.

Εύρημα
  • binarySearch(List<? extends Comparable<? super T>> list, T key) : Χρησιμοποιήστε τη δυαδική αναζήτηση για να βρείτε ένα στοιχείο στη λίστα και να επιστρέψετε το ευρετήριο. Η λίστα πρέπει να ταξινομηθεί.
  1. List<Integer> sortedNumbers = Arrays.asList(1, 2, 3, 4, 5);
  2. int index = Collections.binarySearch(sortedNumbers, 3); // 返回索引 2
  • binarySearch(List<? extends T> list, T key, Comparator<? super T> c): Χρησιμοποιήστε τη δυαδική αναζήτηση για να βρείτε ένα στοιχείο στη λίστα του καθορισμένου συγκριτή.
  1. List<String> sortedNames = Arrays.asList("Alice", "Bob", "Charlie");
  2. int index = Collections.binarySearch(sortedNames, "Bob", String::compareTo); // 返回索引 1
μέγιστες και ελάχιστες τιμές
  • max(Collection<? extends T> coll): Επιστρέφει το μεγαλύτερο στοιχείο στη συλλογή.
  1. List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
  2. int max = Collections.max(numbers); // 返回 5
  • min(Collection<? extends T> coll): Επιστρέφει το μικρότερο στοιχείο στο σετ.
int min = Collections.min(numbers); // 返回 1
Αντίστροφη σειρά
  • reverse(List<?> list): Αντιστρέψτε τα στοιχεία στη λίστα.
  1. List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
  2. Collections.reverse(numbers); // 反转后,numbers为 [5, 4, 3, 2, 1]
τυχαιοποίηση
  • shuffle(List<?> list): Ανακατέψτε τυχαία τη λίστα.
Collections.shuffle(numbers); // numbers的元素顺序将被随机打乱
πλήρωση
  • fill(List<? super T> list, T obj): Αντικαταστήστε όλα τα στοιχεία της λίστας με το καθορισμένο στοιχείο.
  1. List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
  2. Collections.fill(list, "z"); // list 现在是 ["z", "z", "z"]
αντίγραφο
  • copy(List<? super T> dest, List<? extends T> src): Αντιγράφει όλα τα στοιχεία στη λίστα προέλευσης στη λίστα προορισμού.
  1. List<String> dest = Arrays.asList(new String[3]);
  2. List<String> src = Arrays.asList("a", "b", "c");
  3. Collections.copy(dest, src); // dest 现在是 ["a", "b", "c"]
αμετάβλητη συλλογή
  • unmodifiableList(List<? extends T> list): Επιστρέφει μια μη τροποποιήσιμη προβολή.
  1. List<String> list = Arrays.asList("a", "b", "c");
  2. List<String> unmodifiableList = Collections.unmodifiableList(list);
  3. // unmodifiableList.add("d"); // 会抛出 UnsupportedOperationException
συλλογή συγχρονισμού
  • synchronizedList(List<T> list): Επιστρέφει μια λίστα ασφαλή για νήματα.
  1. List<String> list = new ArrayList<>();
  2. List<String> syncList = Collections.synchronizedList(list);

Παράδειγμα περίληψης

Εδώ είναι ένα ολοκληρωμένο παράδειγμα που δείχνειCollectionsΜερικές συνήθεις μέθοδοι τάξεων:

  1. import java.util.*;
  2. public class CollectionsExample {
  3. public static void main(String[] args) {
  4. List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 4, 2));
  5. // 排序
  6. Collections.sort(numbers);
  7. System.out.println("排序后: " + numbers);
  8. // 反转
  9. Collections.reverse(numbers);
  10. System.out.println("反转后: " + numbers);
  11. // 随机打乱
  12. Collections.shuffle(numbers);
  13. System.out.println("随机打乱后: " + numbers);
  14. // 查找最大和最小值
  15. int max = Collections.max(numbers);
  16. int min = Collections.min(numbers);
  17. System.out.println("最大值: " + max + ", 最小值: " + min);
  18. // 二分搜索
  19. Collections.sort(numbers);
  20. int index = Collections.binarySearch(numbers, 3);
  21. System.out.println("元素 3 的索引: " + index);
  22. // 同步集合
  23. List<String> syncList = Collections.synchronizedList(new ArrayList<>());
  24. syncList.add("a");
  25. syncList.add("b");
  26. System.out.println("同步集合: " + syncList);
  27. }
  28. }

με τη χρήσηCollectionsΑυτές οι μέθοδοι που παρέχονται από την κλάση μπορούν εύκολα να εκτελέσουν διάφορες λειτουργίες στη συλλογή, βελτιώνοντας την αναγνωσιμότητα και τη δυνατότητα συντήρησης του κώδικα.

αναφέρομαι σε:

Συλλογές (Java SE 17 & JDK 17)