三大常用集合

1.Set集合

在Java中,Set是一種集合類型,它是一種不允許包含重復元素的集合,每個元素在Set中是唯一的。Set接口的常用實現類有HashSet、TreeSet和LinkedHashSet。以下是關于Set集合的一些重要特點和用法:

特點:

  1. 不允許重復元素:Set中每個元素都是唯一的,如果嘗試向Set中添加重復元素,則添加操作不會成功。
  2. 無序性:Set并不維護元素的添加順序,元素的存儲順序由具體的Set實現類決定。HashSet是根據哈希算法來存儲元素,沒有特定的順序;TreeSet基于元素的自然順序或者Comparator來進行排序;LinkedHashSet保留了元素添加的順序。
  3. 允許空元素:Set集合允許存儲一個空元素(null)。

常用方法:

  1. 添加元素:使用add方法向Set中添加元素。
  2. 刪除元素:使用remove方法移除Set中的元素。
  3. 判斷元素是否存在:使用contains方法判斷Set中是否包含某個元素。
  4. 獲取Set的大小:使用size方法獲取Set中元素的個數。
  5. 遍歷Set:Set集合可以使用迭代器(Iterator)或者增強for循環進行遍歷。

示例:

import java.util.HashSet;
import java.util.Set;public class Main {public static void main(String[] args) {Set<String> set = new HashSet<>();// 添加元素set.add("apple");set.add("orange");set.add("banana");set.add("apple"); // 添加重復元素,不會成功// 刪除元素set.remove("orange");// 判斷元素是否存在if(set.contains("banana")) {System.out.println("Set contains 'banana'");}// 遍歷Setfor(String element : set) {System.out.println(element);}// 獲取Set的大小System.out.println("Size of Set: " + set.size());}
}

在實際應用中,Set集合常用于去重、判斷元素是否存在以及集合運算等場景。通過Set集合提供的特性和方法,可以方便地實現對元素的管理和操作。

Set?是 Java 集合框架中的一個接口,表示不包含重復元素的集合。Set?接口的實現類通常用于存儲不重復的元素,并且不保證元素的順序。常見的?Set?實現類包括?HashSetTreeSet?和?LinkedHashSet

1. 創建 Set 對象:

可以使用以下方法創建?Set?對象:

Set<String> hashSet = new HashSet<>();  // 使用 HashSet 創建 Set
Set<String> treeSet = new TreeSet<>();  // 使用 TreeSet 創建 Set
Set<String> linkedHashSet = new LinkedHashSet<>();  // 使用 LinkedHashSet 創建 Set

2. 常用方法:

  • add(E e):向集合中添加元素,如果元素已存在,則不添加。
  • remove(Object o):從集合中移除指定元素。
  • contains(Object o):判斷集合中是否包含指定元素。
  • size():返回集合中元素的個數。
  • isEmpty():判斷集合是否為空。
  • clear():清空集合中的所有元素。
  • iterator():返回用于迭代集合的迭代器。

3. 示例代碼:

以下是一個示例代碼,演示了如何使用?HashSet?和?TreeSet

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;public class SetExample {public static void main(String[] args) {// 使用 HashSet 創建 SetSet<String> hashSet = new HashSet<>();hashSet.add("apple");hashSet.add("banana");hashSet.add("orange");hashSet.add("banana");  // 不會重復添加System.out.println("HashSet elements: " + hashSet);// 使用 TreeSet 創建 SetSet<String> treeSet = new TreeSet<>();treeSet.add("pineapple");treeSet.add("banana");treeSet.add("orange");treeSet.add("banana");  // 不會重復添加System.out.println("TreeSet elements: " + treeSet);}
}

在上面的示例中,首先創建了一個?HashSet?和一個?TreeSet,然后向集合中添加元素。由于集合不允許重復元素,因此向?HashSet?和?TreeSet?中添加重復元素時,只會添加一次。最后打印輸出了集合中的元素。通過使用?Set?接口的實現類,可以方便地管理不重復的元素集合。

2.Map集合

在Java中,Map接口表示一種將鍵值對映射關系存儲起來的集合。Map集合中的每個元素都包含一個鍵和對應的值,鍵和值之間是一種一對一的映射關系,其中鍵是唯一的,值可以重復。

Map集合廣泛用于保存和處理數據,在實際開發中應用非常廣泛。Java中常用的Map接口的實現類有:

  1. HashMap:基于哈希表實現,可以快速查找鍵值對,適合存儲大量數據。
  2. LinkedHashMap:在HashMap的基礎上增加了按照插入順序或訪問順序排序鍵值對。
  3. TreeMap:基于紅黑樹實現,鍵值對按照自然順序或自定義比較器排序。
  4. ConcurrentHashMap:線程安全的HashMap實現,在多線程環境下性能更好。

Map集合常用的方法有:

  • put(key, value):向Map中添加鍵值對。
  • get(key):根據鍵獲取對應的值。
  • containsKey(key):判斷Map中是否包含指定的鍵。
  • containsValue(value):判斷Map中是否包含指定的值。
  • remove(key):移除指定鍵對應的鍵值對。
  • size():返回Map中鍵值對的數量。

Map集合是常用的數據結構之一,能夠快速進行鍵值對的查找、刪除以及更新操作。在開發過程中,Map集合被廣泛應用于保存配置信息、緩存數據、處理請求參數等場景。

Map集合是Java中用于存儲鍵值對映射關系的數據結構,下面是一些Map集合的基本用法:

創建Map對象

可以使用HashMapLinkedHashMapTreeMap等Map的實現類來創建Map對象:

Map<String, Integer> map = new HashMap<>();

添加鍵值對

使用put(key, value)方法向Map中添加鍵值對:

map.put("apple", 10);
map.put("banana", 5);
map.put("orange", 8);

獲取值

使用get(key)方法根據鍵獲取對應的值:

int appleCount = map.get("apple");

判斷鍵是否存在

使用containsKey(key)方法判斷Map中是否包含指定的鍵:

if (map.containsKey("banana")) {System.out.println("Map contains key 'banana'");
}

迭代Map

可以使用keySet()entrySet()values()等方法對Map進行迭代,獲取鍵集、鍵值對集或值集:

// 遍歷所有鍵
for (String key : map.keySet()) {int value = map.get(key);System.out.println(key + ": " + value);
}// 遍歷所有鍵值對
for (Map.Entry<String, Integer> entry : map.entrySet()) {String key = entry.getKey();int value = entry.getValue();System.out.println(key + ": " + value);
}// 遍歷所有值
for (int value : map.values()) {System.out.println(value);
}

刪除鍵值對

使用remove(key)方法移除指定鍵對應的鍵值對:

map.remove("orange");

Map集合是一種非常有用的數據結構,能夠方便地存儲和操作鍵值對數據。在實際開發中,Map經常被用于保存配置信息、統計數據、緩存數據等場景。熟練掌握Map集合的用法有助于提高代碼編寫效率和數據處理能力。

3.List集合

List 是 Java 集合框架中的一個接口,表示有序的集合,可以包含重復元素。List?接口的常見實現類包括?ArrayListLinkedList?和?Vector

1. 創建 List 對象:

可以使用以下方法創建 List 對象:

List<String> arrayList = new ArrayList<>();  // 使用 ArrayList 創建 List
List<String> linkedList = new LinkedList<>();  // 使用 LinkedList 創建 List
List<String> vector = new Vector<>();  // 使用 Vector 創建 List

2. 常用方法:

  • add(E e):向列表尾部添加元素。
  • add(int index, E element):在指定位置插入元素。
  • get(int index):獲取指定位置的元素。
  • remove(int index):移除指定位置的元素。
  • remove(Object o):移除指定元素。
  • contains(Object o):判斷列表中是否包含指定元素。
  • size():返回列表的大小。
  • isEmpty():判斷列表是否為空。
  • clear():清空列表中所有元素。
  • set(int index, E element):替換指定位置的元素。

3. 示例代碼:

以下是一個示例代碼,演示了如何使用?ArrayList?和?LinkedList

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;public class ListExample {public static void main(String[] args) {// 使用 ArrayList 創建 ListList<String> arrayList = new ArrayList<>();arrayList.add("apple");arrayList.add("banana");arrayList.add("orange");// 在指定位置插入元素arrayList.add(1, "pineapple");System.out.println("ArrayList elements: " + arrayList);// 使用 LinkedList 創建 ListList<String> linkedList = new LinkedList<>();linkedList.add("car");linkedList.add("bus");linkedList.add("bike");// 移除指定位置的元素linkedList.remove(1);System.out.println("LinkedList elements: " + linkedList);}
}

在上面的示例中,首先創建了一個?ArrayList?和一個?LinkedList,然后向列表中添加元素并插入元素。隨后刪除了一個元素,并打印輸出了列表的元素。通過使用 List 接口的實現類,可以操作有序、可以重復的元素集合。

List 是 Java 集合框架中的一個接口,表示有序的集合,可以包含重復元素。List 接口的實現類包括 ArrayList、LinkedList 和 Vector。下面介紹 List 集合的常見用法:

1. 創建 List 對象:

可以使用以下方法創建 List 對象:

List<String> list = new ArrayList<>();  // 使用 ArrayList 創建 List
List<Integer> list = new LinkedList<>();  // 使用 LinkedList 創建 List
List<Double> list = new Vector<>();  // 使用 Vector 創建 List

2. 添加元素:

可以使用?add(E e)?方法向 List 中添加元素,可以在列表的末尾添加元素。

list.add("apple");
list.add("banana");
list.add("orange");

3. 獲取元素:

可以使用?get(int index)?方法獲取指定位置的元素。

String fruit = list.get(1);  // 獲取第二個元素(索引從0開始)

4. 刪除元素:

可以使用?remove(int index)?方法刪除指定位置的元素,或者使用?remove(Object o)?方法刪除指定元素。

list.remove(1);  // 刪除第二個元素
list.remove("apple");  // 刪除元素值為 "apple" 的元素

5. 遍歷元素:

可以使用?for?循環或者迭代器遍歷列表中的元素。

for(String fruit : list) {System.out.println(fruit);
}Iterator<String> iterator = list.iterator();
while(iterator.hasNext()) {String fruit = iterator.next();System.out.println(fruit);
}

6. 其他常用方法:

  • size():返回列表的大小。
  • isEmpty():判斷列表是否為空。
  • clear():清空列表中的所有元素。
  • indexOf(Object o):返回元素在列表中第一次出現的索引。
  • contains(Object o):判斷列表中是否包含指定元素。
  • set(int index, E element):替換指定位置的元素。

示例代碼:

以下是一個示例代碼,演示了 List 集合的基本用法:

import java.util.ArrayList;
import java.util.List;public class ListExample {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("apple");list.add("banana");list.add("orange");for (String fruit : list) {System.out.println(fruit);}list.remove(1);  // 刪除第二個元素System.out.println("Size of list: " + list.size());System.out.println("Is list empty? " + list.isEmpty());}
}

通過使用 List 集合,可以方便地存儲有序、可以重復的元素集合,并進行常見的操作,如添加、獲取、刪除、遍歷等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38863.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是mysql的回表操作

MySQL中的“回表”操作是指在執行查詢時&#xff0c;由于索引結構的限制&#xff0c;數據庫系統需要從非聚集索引&#xff08;Secondary Index&#xff09;中找到主鍵值&#xff0c;然后使用這些主鍵值回溯到聚集索引&#xff08;Clustered Index&#xff09;中獲取完整的行數據…

珠江電纜,承載您夢想的每一度電

在現代社會&#xff0c;電力無處不在&#xff0c;它不僅是經濟發展的動力&#xff0c;更是每個人生活中不可或缺的能量來源。而在這個電力驅動的世界里&#xff0c;有一家企業默默地承載著千家萬戶的夢想&#xff0c;它就是珠江電纜。 連接夢想的每一度電 珠江電纜成立于2001…

使用Java實現單元測試:JUnit教程

使用Java實現單元測試&#xff1a;JUnit教程 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在軟件開發中&#xff0c;單元測試是保證代碼質量和功能正確性的重要手段之一。JUnit是Java語言中最流行…

絕區零國際服下載 一鍵下載絕區零國際服教程

絕區零是一款米哈游傾情打造的全新都市幻想動作角色扮演游戲。在游戲中&#xff0c;我們將扮演一名繩匠&#xff0c;這是為出于各種原因需要進入危險空洞的人提供指引的專業人士。您將與獨特的角色一起踏上冒險之旅&#xff0c;攜手探索空洞&#xff0c;對戰強大敵人&#xff0…

【狀態估計】線性高斯系統的狀態估計——離散時間的遞歸濾波

前兩篇文章介紹了離散時間的批量估計、離散時間的遞歸平滑&#xff0c;本文著重介紹離散時間的遞歸濾波。 前兩篇位置&#xff1a;【狀態估計】線性高斯系統的狀態估計——離散時間的批量估計、【狀態估計】線性高斯系統的狀態估計——離散時間的遞歸平滑。 離散時間的遞歸濾波…

ollama將模型永遠加載在顯存里

問題解析 我們在使用ollma部署大語言模型的時候,如果部署的模型尺寸較大,往往在第一次加載的時候需要花費大量的時間加載模型;等加載完成后,如果長時間不調用模型,我們會發現模型已經被釋放掉了,又要重新加載,導致體驗感極差. 這是為什么呢?因為在沒被調用時,ollama默認在顯…

Steam夏促怎么注冊 Steam夏促賬號注冊教程

隨著夏日的炙熱漸漸充斥著每一個角落&#xff0c;Steam平臺也趕來添熱鬧&#xff0c;推出了一系列讓人眼前一亮的夏季促銷活動。如果你也是游戲愛好者&#xff0c;我們肯定不能錯過這次的steam夏促。正直本次夏日促銷有著很多的游戲迎來史低和新史低&#xff0c;有各種各樣的游…

20240703在飛凌OK3588-C開發板上刷Rockchip原廠的Buildroot20220811

20240703在飛凌OK3588-C開發板上刷Rockchip原廠的Buildroot20220811 2024/7/3 18:25 詳細的刷機LOG&#xff1a; [BEGIN] 2024/7/3 18:18:49 rootRK3588:/# DDR Version V1.07 20220412 LPDDR4X, 2112MHz channel[0] BW16 Col10 Bk8 CS0 Row16 CS1 Row16 CS2 Die BW16 Size204…

TP8/6 更改后臺入口地址admin改為myadmin 隱藏真實后臺網址

原來www.xxx.com/admin 改后www.xxx.com/myadmin config/app.php // 應用映射&#xff08;自動多應用模式有效&#xff09;app_map > [admintest>admin],

JavaScript 實用技巧(二)

JavaScript 實用技巧&#xff1a;提升你的編程效率 JavaScript 是一種廣泛使用和極具表現力的編程語言。為了幫助你更高效地編寫代碼&#xff0c;本文將介紹一些實用的 JavaScript 技巧。掌握這些技巧將有助于提高你的編程速度和代碼質量。 1. 交換變量的值 不需要使用臨時變…

為何同一PDF文檔用不同軟件打印效果不同?

通過掃描儀生成的同一PDF文檔&#xff0c;同樣的設置&#xff0c;為什么別的電腦打出來是白底我的打出來有灰色格子背景&#xff1f;這種情況通常是由于PDF閱讀軟件的不同造成的差異。 ### 可能的原因和解決方法&#xff1a; 1. **PDF閱讀軟件的不同**&#xff1a; - **解決方…

Vue3輕松創建交互式儀表盤

本文由ScriptEcho平臺提供技術支持 項目地址&#xff1a;傳送門 基于 Plotly.js 的 Vue 儀表盤組件 應用場景介紹 儀表盤是一種交互式可視化工具&#xff0c;用于監控和分析關鍵指標。它廣泛應用于各種行業&#xff0c;例如金融、醫療保健和制造業。 代碼基本功能介紹 本…

FFmpeg 命令行 音視頻格式轉換

&#x1f4da;&#xff1a;FFmpeg 提供了豐富的命令行選項和功能&#xff0c;可以用來處理音視頻文件、流媒體等&#xff0c;掌握命令行的使用&#xff0c;可以有效提高工作效率。 目錄 一、視頻轉換和格式轉換 &#x1f535; 將視頻文件轉換為另一種格式 &#x1f535; 指定…

12個驚艷的可視化大屏:解鎖數據之美,洞見未來趨勢

在數字化轉型的浪潮中&#xff0c;可視化大屏以其獨特的魅力和強大的功能&#xff0c;成為了企業展示數據、洞察趨勢的重要窗口。我們將一同探索12個驚艷的可視化大屏案例&#xff0c;感受數據之美&#xff0c;洞見未來趨勢。 可視化大屏&#xff0c;作為數據可視化的高級形態…

vue3繪制廣東深圳地圖使用echarts

<!-- 餅圖 --> <template><el-card><template #header> 地級市分類圖 </template><div :id"id" :class"className" :style"{ height, width }"></div></el-card> </template><script …

徹底學會Gradle插件版本和Gradle版本及對應關系

看完這篇&#xff0c;保你徹底學會Gradle插件版本和Gradle版本及對應關系&#xff0c;超詳細超全的對應關系表 需要知道Gradle插件版本和Gradle版本的對應關系&#xff0c;其實就是需要知道Gradle插件版本對應所需的gradle最低版本&#xff0c;詳細對應關系如下表格&#xff0…

Lua、AB包熱更新總結

1.AB包熱更新 &#xff08;1&#xff09;AB包是一種特定的壓縮文件&#xff0c;可以放模型貼圖音效等等 &#xff08;2&#xff09;Resources目錄下打包時只讀 無法修改&#xff1b;而AB包存儲的位置是自定義的&#xff0c;能夠動態更新&#xff0c;同時可以決定資源包初始的大…

0703_ARM7

練習&#xff1a; 封裝exti&#xff0c;cic初始化函數 //EXTI初始化 void hal_key_exti_init(int id,int exticr,int mode){//獲取偏移地址int address_offset (id%4)*8;//獲取寄存器編號int re_ser (id/4)1;//printf("address_offset%d,re_ser%d\n",address_o…

Excel中按列的首行字母順序,重新排列(VBA腳本)

排序前 要求對4列數據按照第一行abcd的順序排列 VB腳本如下&#xff1a; 要使用這個腳本&#xff0c;請按照以下步驟操作&#xff1a; 打開Excel&#xff0c;然后按下 Alt F11 打開VBA編輯器。在VBA編輯器中&#xff0c;選擇“插入” > “模塊”&#xff0c;在打開的模塊…

【Python機器學習】算法鏈與管道——構建管道

目錄 1、首先&#xff0c;我們構建一個由步驟列表組成的管道對象。 2、向任何其他scikit-learn估計器一樣來擬合這個管道 3、調用pipe.score 我們來看下如何使用Pipeline類來表示在使用MinMaxScaler縮放數據后&#xff0c;再訓練一個SVM的工作流程&#xff08;暫時不用網格搜…