Teknologian jakaminen

Johdatus Java Collections -luokkaan

2024-07-12

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

Javaajava.util.CollectionsLuokat tarjoavat joukon staattisia menetelmiä kokoelmien (kuten luetteloiden, joukkojen ja karttojen) muokkaamiseen tai palauttamiseen.Collections Class on hyödyllisyysluokka, joka on suunniteltu tarjoamaan käteviä algoritmeja ja toimintoja kokoelmissa.Seuraava on pariCollectionsJohdatus luokkiin ja niiden yleisesti käytettyihin menetelmiin.

Yhteenveto yleisistä menetelmistä

  • järjestelläsort(List<T> list)sort(List<T> list, Comparator<? super T> c)
  • löytöbinarySearch(List<? extends Comparable<? super T>> list, T key)binarySearch(List<? extends T> list, T key, Comparator<? super T> c)
  • käänteinenreverse(List<?> list)
  • kiertäärotate(List<?> list, int distance)
  • täytefill(List<? super T> list, T obj)
  • kopiocopy(List<? super T> dest, List<? extends T> src)
  • min ja maxmin(Collection<? extends T> coll)max(Collection<? extends T> coll)
  • synkronointikokoelmasynchronizedList(List<T> list)synchronizedSet(Set<T> s)synchronizedMap(Map<K, V> m)
  • muuttumaton kokoelmaunmodifiableList(List<? extends T> list)unmodifiableSet(Set<? extends T> s)unmodifiableMap(Map<? extends K, ? extends V> m)

järjestellä
  • sort(List<T> list): Lajittele lista nousevaan järjestykseen, luettelon elementtien tulee toteutuaComparablekäyttöliittymä.
  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): Lajittelee luettelon määritetyn vertailijan mukaan.
  1. List<String> names = Arrays.asList("Charlie", "Alice", "Bob");
  2. // 根据字符串长度排序
  3. Collections.sort(names, (s1, s2) -> s1.length() - s2.length());

Huomautus: Kokoelmat.lajittelu(nimet, (s1, s2) -&gt; s1.length() - s2.length()) (s1, s2) -&gt; s1.length() - s2.length() Tämä on lambda-lauseke käytetään Comparator-rajapinnan vertailumenetelmän toteuttamiseen.

löytö
  • binarySearch(List<? extends Comparable<? super T>> list, T key) : Käytä binaarihakua löytääksesi elementin luettelosta ja palauttaaksesi indeksin. Lista on lajiteltava.
  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): Käytä binaarihakua löytääksesi elementin määritetyn vertailijan luettelosta.
  1. List<String> sortedNames = Arrays.asList("Alice", "Bob", "Charlie");
  2. int index = Collections.binarySearch(sortedNames, "Bob", String::compareTo); // 返回索引 1
enimmäis- ja minimiarvot
  • max(Collection<? extends T> coll): Palauttaa kokoelman suurimman elementin.
  1. List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
  2. int max = Collections.max(numbers); // 返回 5
  • min(Collection<? extends T> coll): Palauttaa joukon pienimmän elementin.
int min = Collections.min(numbers); // 返回 1
Käänteinen järjestys
  • reverse(List<?> list): Kääntää luettelon elementit päinvastoin.
  1. List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
  2. Collections.reverse(numbers); // 反转后,numbers为 [5, 4, 3, 2, 1]
satunnaistaminen
  • shuffle(List<?> list): Sekoita luettelo satunnaisesti.
Collections.shuffle(numbers); // numbers的元素顺序将被随机打乱
täyte
  • fill(List<? super T> list, T obj): Korvaa kaikki luettelon elementit määritetyllä elementillä.
  1. List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
  2. Collections.fill(list, "z"); // list 现在是 ["z", "z", "z"]
kopio
  • copy(List<? super T> dest, List<? extends T> src): Kopioi kaikki lähdeluettelon elementit kohdeluetteloon.
  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"]
muuttumaton kokoelma
  • unmodifiableList(List<? extends T> list): Palauttaa muokkaamattoman näkymän.
  1. List<String> list = Arrays.asList("a", "b", "c");
  2. List<String> unmodifiableList = Collections.unmodifiableList(list);
  3. // unmodifiableList.add("d"); // 会抛出 UnsupportedOperationException
synkronointikokoelma
  • synchronizedList(List<T> list): Palauttaa lankaturvallisen luettelon.
  1. List<String> list = new ArrayList<>();
  2. List<String> syncList = Collections.synchronizedList(list);

Esimerkki yhteenveto

Tässä on kattava esimerkki siitäCollectionsJoitakin yleisiä luokkamenetelmiä:

  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. }

käyttämälläCollectionsNämä luokan tarjoamat menetelmät voivat helposti suorittaa erilaisia ​​​​toimintoja kokoelmalle, mikä parantaa koodin luettavuutta ja ylläpidettävyyttä.

viitata:

Kokoelmat (Java SE 17 & JDK 17)