大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 一文告訴你Java中的集合類有哪些

一文告訴你Java中的集合類有哪些

更新時間:2022-09-13 09:42:35 來源:動力節(jié)點 瀏覽1123次

Collections類是Java Collections Framework中的實用程序類之一。java.util包包含 Collections 類。Collections 類基本上與對集合進(jìn)行操作或返回集合的靜態(tài)方法一起使用。如果傳遞給方法的集合或?qū)ο鬄榭?,則此類的所有方法都會拋出NullPointerException 。

語法:聲明

公共類集合
擴(kuò)展對象

集合類字段

集合類基本上包含下面列出的 3 個字段,可用于返回不可變實體。

EMPTY_LIST 獲取不可變的空列表

EMPTY_SET 獲取不可變的空集

EMPTY_MAP 獲取不可變的空 Map

現(xiàn)在讓我們討論一下這個類中存在的方法,以便我們稍后可以在程序中使用這些內(nèi)置功能。以下是以表格格式列出的方法,如下所示:

方法 描述
addAll(Collection<? super T> c, T... 元素) 它用于將指定的集合元素插入到指定的集合中。
asLifoQueue?(Deque<T> deque) 此方法將 Deque 的視圖返回為后進(jìn)先出 (Lifo) 隊列。
binarySearch(List<? extends Comparable> list, T key) 此方法使用指定列表中的二進(jìn)制搜索來搜索鍵。
binarySearch?(List<? extends T> list, T key, Comparator<? super T> c) 此方法使用二進(jìn)制搜索算法在指定列表中搜索指定對象。
checkedCollection?(Collection<E> c, Class<E> 類型) 此方法返回指定集合的??動態(tài)類型安全視圖。
checkedList?(List<E> 列表,Class<E> 類型) 此方法返回指定列表的動態(tài)類型安全視圖。
checkedMap?(Map<K,?V> m, Class<K> keyType, Class<V> valueType) 此方法返回指定映射的動態(tài)類型安全視圖。
checkedNavigableMap?(NavigableMap<K,?V> m, Class<K> keyType, Class<V> valueType) 此方法返回指定可導(dǎo)航地圖的動態(tài)類型安全視圖。
checkedNavigableSet?(NavigableSet<E> s, Class<E> 類型) 此方法返回指定可導(dǎo)航集的動態(tài)類型安全視圖。
checkedQueue?(Queue<E> 隊列,Class<E> 類型) 此方法返回指定隊列的動態(tài)類型安全視圖。
checkedSet?(Set<E> s, Class<E> 類型) 此方法返回指定集合的??動態(tài)類型安全視圖。
checkedSortedMap?(SortedMap<K,?V> m, Class<K> keyType, Class<V> valueType) 此方法返回指定排序映射的動態(tài)類型安全視圖。
checkedSortedSet?(SortedSet<E> s, Class<E> 類型) 此方法返回指定排序集的動態(tài)類型安全視圖。
復(fù)制?(List<? super T> dest, List<? extends T> src) 此方法將一個列表中的所有元素復(fù)制到另一個列表中。
不相交?(Collection<?> c1, Collection<?> c2) 如果兩個指定的集合沒有共同的元素,則此方法返回 true。
空枚舉() 此方法返回一個沒有元素的枚舉。
空迭代器() 此方法返回一個沒有元素的迭代器。
空列表() 此方法返回一個空列表(不可變)。
空列表迭代器() 此方法返回一個沒有元素的列表迭代器。
空地圖() 此方法返回一個空映射(不可變)。
空導(dǎo)航地圖() 此方法返回一個空的可導(dǎo)航地圖(不可變)。
空導(dǎo)航集() 此方法返回一個空的可導(dǎo)航集(不可變)。
空集() 此方法返回一個空集(不可變)。
空排序映射() 此方法返回一個空的排序映射(不可變)。
空排序集() 此方法返回一個空的排序集(不可變)。
枚舉?(Collection<T> c) 此方法返回對指定集合的??枚舉。
fill?(List<?super T> list, T obj) 此方法用指定元素替換指定列表的所有元素。
頻率?(Collection<?> c, Object o) 此方法返回指定集合中等于指定對象的元素數(shù)。
indexOfSubList?(List<?> source, List<?> target) 此方法返回指定目標(biāo)列表在指定源列表中第一次出現(xiàn)的起始位置,如果沒有出現(xiàn),則返回 -1。
lastIndexOfSubList?(List<?> source, List<?> target) 此方法返回指定源列表中指定目標(biāo)列表的最后一次出現(xiàn)的起始位置,如果沒有這樣的出現(xiàn),則返回 -1。
列表?(枚舉<T> e) 此方法返回一個數(shù)組列表,其中包含指定枚舉返回的元素,這些元素按枚舉返回的順序排列。
max?(Collection<? extends T> coll) 此方法根據(jù)元素的自然順序返回給定集合的最大元素。
max?(Collection<? extends T> coll, Comparator<? super T> comp) 此方法根據(jù)指定比較器引入的順序返回給定集合的最大元素。
min?(Collection<? extends T> coll) 此方法根據(jù)元素的自然順序返回給定集合的最小元素。
min?(Collection<? extends T> coll, Comparator<? super T> comp) 此方法根據(jù)指定比較器誘導(dǎo)的順序返回給定集合的最小元素。
nCopies?(int n, T o) 此方法返回一個由指定對象的 n 個副本組成的不可變列表。
newSetFromMap?(Map<E,?Boolean> map) 此方法返回由指定映射支持的集合。
replaceAll?(List<T> list, T oldVal, T newVal) 此方法將列表中一個指定值的所有出現(xiàn)替換為另一個。
反向?(列表<?>列表) 此方法反轉(zhuǎn)指定列表中元素的順序
相反的順序() 此方法返回一個比較器,該比較器將自然順序的反向強(qiáng)加于實現(xiàn) Comparable 接口的對象集合。
 reverseOrder?(Comparator<T> cmp) 此方法返回一個比較器,該比較器強(qiáng)制指定比較器的反向排序。
旋轉(zhuǎn)?(List<?> list, int distance) 此方法將指定列表中的元素旋轉(zhuǎn)指定距離。
洗牌?(列表<?>列表) 此方法使用默認(rèn)隨機(jī)源隨機(jī)排列指定列表。
shuffle?(List<?> list, Random rnd) 此方法使用指定的隨機(jī)源隨機(jī)排列指定的列表。
singletonMap?(K key, V value) 此方法返回一個不可變映射,僅將指定鍵映射到指定值。
單例(T o) 此方法返回一個只包含指定對象的不可變集合。
單例列表?(T o) 此方法返回一個僅包含指定對象的不可變列表。
排序(列表<T>列表) 此方法根據(jù)其元素的自然順序?qū)χ付斜磉M(jìn)行升序排序。
sort?(List<T> list, Comparator<? super T> c) 此方法根據(jù)指定比較器產(chǎn)生的順序?qū)χ付斜磉M(jìn)行排序。
交換?(List<?> list, int i, int j) 此方法交換指定列表中指定位置的元素。
synchronizedCollection?(Collection<T> c) 此方法返回由指定集合支持的同步(線程安全)集合。
同步列表?(List<T> 列表) 此方法返回由指定列表支持的同步(線程安全)列表。
synchronizedMap?(Map<K,?V> m) 此方法返回由指定映射支持的同步(線程安全)映射。
synchronizedNavigableMap?(NavigableMap<K,?V> m) 此方法返回由指定可導(dǎo)航地圖支持的同步(線程安全)可導(dǎo)航地圖。
synchronizedNavigableSet?(NavigableSet<T> s) 此方法返回由指定導(dǎo)航集支持的同步(線程安全)導(dǎo)航集。
同步集?(Set<T> s) 此方法返回由指定集支持的同步(線程安全)集。
synchronizedSortedMap?(SortedMap<K,?V> m) 此方法返回由指定排序映射支持的同步(線程安全)排序映射。
synchronizedSortedSet?(SortedSet<T> s) 此方法返回由指定排序集支持的同步(線程安全)排序集。
unmodifiableCollection?(Collection<? extends T> c) 此方法返回指定集合的??不可修改視圖。
unmodifiableList?(List<? extends T> list) 此方法返回指定列表的不可修改視圖。
unmodifiableNavigableMap?(NavigableMap<K,?? extends V> m) 此方法返回指定導(dǎo)航地圖的不可修改視圖。
unmodifiableNavigableSet?(NavigableSet<T> s) 此方法返回指定導(dǎo)航集的不可修改視圖。
unmodifiableSet?(Set<? extends T> s) 此方法返回指定集合的??不可修改視圖。
unmodifiableSortedMap?(SortedMap<K,?? extends V> m) 此方法返回指定排序地圖的不可修改視圖。
不可修改的SortedSet?(SortedSet<T> s) 此方法返回指定排序集的不可修改視圖。

現(xiàn)在,我們已經(jīng)完成了所有方法的列出,所以現(xiàn)在我們有一個微弱的暗示,我們可以了解這些方法在考慮全局編程視角時的重要性。編寫優(yōu)化代碼時重要且經(jīng)常使用的方法,因為在 java 中嚴(yán)重使用 Collections 類,您會在幾乎每個 java 優(yōu)化代碼中看到這些方法。因此,在這里,比在任何課程中更可能的是,我們不僅會實現(xiàn)該方法,還會討論可以執(zhí)行的操作,以便在實現(xiàn)相同的同時具有概念清晰和強(qiáng)大的命令。我們將討論的操作如下:

向集合中添加元素

對集合進(jìn)行排序

在集合中搜索

復(fù)制元素

不相交的集合

操作一:向 Collections 類對象添加元素

java.util.Collections類的addAll()方法用于將所有指定元素添加到指定集合中。要添加的元素可以單獨(dú)指定,也可以作為數(shù)組指定。

例子

// Java Program to Demonstrate Adding Elements
// Using addAll() method
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Main class
class GFG {
 // Main driver method
 public static void main(String[] args)
 {
  // Creating a list
  // Declaring object of string type
  List<String> items = new ArrayList<>();
  // Adding elements (items) to the list
  items.add("Shoes");
  items.add("Toys");
  // Add one or more elements
  Collections.addAll(items, "Fruits", "Bat", "Ball");
  // Printing the list contents
  for (int i = 0; i < items.size(); i++) {
   System.out.print(items.get(i) + " ");
  }
 }
}

輸出

鞋 玩具 水果 蝙蝠 球

操作 2:對集合進(jìn)行排序

java.util.Collections.sort()用于對存在于指定集合列表中的元素進(jìn)行升序排序。java.util.Collections.reverseOrder()用于按降序排序。

例子

// Java program to demonstrate sorting
// a Collections using sort() method
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Main Class
// SortingCollectionExample
class GFG {
 // Main driver method
 public static void main(String[] args)
 {
  // Creating a list
  // Declaring object of string type
  List<String> items = new ArrayList<>();
  // Adding elements to the list
  // using add() method
  items.add("Shoes");
  items.add("Toys");
  // Adding one or more elements using addAll()
  Collections.addAll(items, "Fruits", "Bat", "Mouse");
  // Sorting according to default ordering
  // using sort() method
  Collections.sort(items);
  // Printing the elements
  for (int i = 0; i < items.size(); i++) {
   System.out.print(items.get(i) + " ");
  }
  System.out.println();
  // Sorting according to reverse ordering
  Collections.sort(items, Collections.reverseOrder());
  // Printing the reverse order
  for (int i = 0; i < items.size(); i++) {
   System.out.print(items.get(i) + " ");
  }
 }
}

輸出

蝙蝠水果鼠標(biāo)鞋玩具
玩具 鞋 老鼠 水果 蝙蝠

操作 3:在集合中搜索

java.util.Collections.binarySearch()方法返回對象在排序列表中的位置。使用該方法時,列表應(yīng)按升序排序,否則該方法返回的結(jié)果將是錯誤的。如果元素存在于列表中,該方法將返回該元素在排序列表中的位置,否則,該方法返回的結(jié)果將是-(如果存在該元素應(yīng)該存在的插入點)-1) .

例子

// Java Program to Demonstrate Binary Search
// Using Collections.binarySearch()
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Main class
// BinarySearchOnACollection
public class GFG {
 // Main driver method
 public static void main(String[] args)
 {
  // Creating a List
  // Declaring object of string type
  List<String> items = new ArrayList<>();
  // Adding elements to object
  // using add() method
  items.add("Shoes");
  items.add("Toys");
  items.add("Horse");
  items.add("Ball");
  items.add("Grapes");
  // Sort the List
  Collections.sort(items);
  // BinarySearch on the List
  System.out.println(
   "The index of Horse is "
   + Collections.binarySearch(items, "Horse"));
  // BinarySearch on the List
  System.out.println(
   "The index of Dog is "
   + Collections.binarySearch(items, "Dog"));
 }
}

輸出

馬的指數(shù)是2
Dog的指數(shù)是-2

操作 4:復(fù)制元素

java.util.Collections類的copy()方法用于將一個列表中的所有元素復(fù)制到另一個列表中。操作后,目標(biāo)列表中每個復(fù)制元素的索引將與其在源列表中的索引相同。目標(biāo)列表必須至少與源列表一樣長。如果它更長,則目標(biāo)列表中的其余元素不受影響。

例子

// Java Program to Demonstrate Copying Elements
// Using copy() method
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Main class
// CopyOneCollectionToAnother
class GFG {
 // Main driver method
 public static void main(String[] args)
 {
  // Create destination list
  List<String> destination_List = new ArrayList<>();
  // Add elements
  destination_List.add("Shoes");
  destination_List.add("Toys");
  destination_List.add("Horse");
  destination_List.add("Tiger");
  // Print the elements
  System.out.println(
   "The Original Destination list is ");
  for (int i = 0; i < destination_List.size(); i++) {
   System.out.print(destination_List.get(i) + " ");
  }
  System.out.println();
  // Create source list
  List<String> source_List = new ArrayList<>();
  // Add elements
  source_List.add("Bat");
  source_List.add("Frog");
  source_List.add("Lion");
  // Copy the elements from source to destination
  Collections.copy(destination_List, source_List);
  // Printing the modified list
  System.out.println(
   "The Destination List After copying is ");
  for (int i = 0; i < destination_List.size(); i++) {
   System.out.print(destination_List.get(i) + " ");
  }
 }
}

輸出

原始目的地列表是
鞋 玩具 馬 老虎
復(fù)制后的目的地列表是
蝙蝠蛙獅子老虎

操作 5:不相交收集

java.util.Collections.disjoint()用于檢查兩個指定的集合是否不相交。更正式地說,如果兩個集合沒有共同的元素,則它們是不相交的。如果兩個集合沒有任何共同元素,則返回 true。

例子

// Java Program to Illustrate Working of Disjoint Function
// Importing required classes
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Main class
// DisjointCollectionsExample
class GFG {
 // Main driver method
 public static void main(String[] args)
 {
  // Create list1
  List<String> list1 = new ArrayList<>();
  // Add elements to list1
  list1.add("Shoes");
  list1.add("Toys");
  list1.add("Horse");
  list1.add("Tiger");
  // Create list2
  List<String> list2 = new ArrayList<>();
  // Add elements to list2
  list2.add("Bat");
  list2.add("Frog");
  list2.add("Lion");
  // Check if disjoint or not
  System.out.println(
   Collections.disjoint(list1, list2));
 }
}

輸出

真的

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲阿v天堂在线观看2017 | 久久影院中文字幕 | 成人欧美一区二区三区视频xxx | 午夜大片免费男女爽爽影院久久 | 成人在线视频网址 | 久久精品国产久金国产思思 | 国产午夜影院 | 国产激情一级毛片久久久 | 国产高清在线a视频大全凹凸 | 色黄啪啪网18以下免费进 | 亚洲最大网 | 日本波多野结衣在线 | a免费毛片在线播放 | 激情伊人网 | 久久在草 | 9999在线观看| a v在线男人的天堂观看免费 | 色综合久久久久久久久五月 | 91精品国产闺蜜国产在线 | 久cao在线观看视频 久re这里只有精品最新地址 | 亚洲一区二区三区精品视频 | 国产成+人+综合+亚洲不卡 | 日韩精品一区二区三区四区 | 日本一级在线播放线观看视频 | 国产精亚洲视频 | 久久亚洲综合 | 自拍亚洲午夜伦li片影院 | 国产国产人免费观看在线视频 | 国人精品视频在线观看 | 欧美视频一二三区 | 精品在线一区二区 | 久久久久久97 | 四虎影院在线免费观看 | 亚洲精品字幕一区二区三区 | 亚洲国产香蕉视频欧美 | 韩日免费视频 | 精品国产日韩亚洲一区91 | 亚洲一区国产 | 久久久视 | 欧美激情综合亚洲一二区 | 国产精品亚洲欧美大片在线看 |