τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
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
διεπαφή.- 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)
: Ταξινομεί τη λίστα σύμφωνα με τον καθορισμένο συγκριτή.- List<String> names = Arrays.asList("Charlie", "Alice", "Bob");
-
- // 根据字符串长度排序
- Collections.sort(names, (s1, s2) -> s1.length() - s2.length());
-
-
-
Σημείωση: Collections.sort(names, (s1, s2) -> s1.length() - s2.length()) (s1, s2) -> s1.length() - s2.length() Αυτή είναι μια έκφραση λάμδα χρησιμοποιείται για την υλοποίηση της μεθόδου σύγκρισης της διεπαφής Comparator.
binarySearch(List<? extends Comparable<? super T>> list, T key)
: Χρησιμοποιήστε τη δυαδική αναζήτηση για να βρείτε ένα στοιχείο στη λίστα και να επιστρέψετε το ευρετήριο. Η λίστα πρέπει να ταξινομηθεί.- 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)
: Χρησιμοποιήστε τη δυαδική αναζήτηση για να βρείτε ένα στοιχείο στη λίστα του καθορισμένου συγκριτή.- List<String> sortedNames = Arrays.asList("Alice", "Bob", "Charlie");
- int index = Collections.binarySearch(sortedNames, "Bob", String::compareTo); // 返回索引 1
max(Collection<? extends T> coll)
: Επιστρέφει το μεγαλύτερο στοιχείο στη συλλογή.- List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
- int max = Collections.max(numbers); // 返回 5
min(Collection<? extends T> coll)
: Επιστρέφει το μικρότερο στοιχείο στο σετ.int min = Collections.min(numbers); // 返回 1
reverse(List<?> list)
: Αντιστρέψτε τα στοιχεία στη λίστα.- List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
- Collections.reverse(numbers); // 反转后,numbers为 [5, 4, 3, 2, 1]
shuffle(List<?> list)
: Ανακατέψτε τυχαία τη λίστα.Collections.shuffle(numbers); // numbers的元素顺序将被随机打乱
fill(List<? super T> list, T obj)
: Αντικαταστήστε όλα τα στοιχεία της λίστας με το καθορισμένο στοιχείο.- 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)
: Αντιγράφει όλα τα στοιχεία στη λίστα προέλευσης στη λίστα προορισμού.- 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)
: Επιστρέφει μια μη τροποποιήσιμη προβολή.- List<String> list = Arrays.asList("a", "b", "c");
- List<String> unmodifiableList = Collections.unmodifiableList(list);
- // unmodifiableList.add("d"); // 会抛出 UnsupportedOperationException
synchronizedList(List<T> list)
: Επιστρέφει μια λίστα ασφαλή για νήματα.- List<String> list = new ArrayList<>();
- List<String> syncList = Collections.synchronizedList(list);
Εδώ είναι ένα ολοκληρωμένο παράδειγμα που δείχνειCollections
Μερικές συνήθεις μέθοδοι τάξεων:
- 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);
- }
- }
με τη χρήσηCollections
Αυτές οι μέθοδοι που παρέχονται από την κλάση μπορούν εύκολα να εκτελέσουν διάφορες λειτουργίες στη συλλογή, βελτιώνοντας την αναγνωσιμότητα και τη δυνατότητα συντήρησης του κώδικα.