国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【從零開始學習JAVA | 第二十三篇】集合體系結構

這篇具有很好參考價值的文章主要介紹了【從零開始學習JAVA | 第二十三篇】集合體系結構。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【從零開始學習JAVA | 第二十三篇】集合體系結構,【從零開始學習JAVA】,數(shù)學建模

目錄

前言:

單列集合:? ? ?

set與list的區(qū)別:

雙列集合:

map的特點:

總結:


?文章來源地址http://www.zghlxwxcb.cn/news/detail-591795.html

前言:

? ? ? ? ? ? ? ? JAVA中為我們提供了很多集合,這些集合都有自己很獨特的特點,因此我們要學習所有的集合,但是在學習所有的集合之前,我們還是先為大家介紹一下JAVA的集合體系結構,這樣有利于大家更好的理解整個JAVA集合框架。

整個集合其實都可以分為兩大類:單列集合與雙列集合

單列集合:? ? ?

【從零開始學習JAVA | 第二十三篇】集合體系結構,【從零開始學習JAVA】,數(shù)學建模

Java中的單列集合指的是一種只包含一個元素的集合,也被稱作為單元素集合或者是單值集合,單列集合一次只能添加一個元素。在Java中,單列集合主要有以下幾種:

1. Singleton Set
Singleton Set是一種只包含一個元素的集合,并且該元素不允許為空。Singleton Set中只有一個元素,所以它的size()方法返回值為1。

示例代碼:

Set<String> singletonSet = Collections.singleton("hello");

2. Singleton List
Singleton List也是一種只包含一個元素的集合,但是它是有序的,并可以包含重復元素。Singleton List中只有一個元素,所以它的size()方法返回值為1。

示例代碼:

List<String> singletonList = Collections.singletonList("hello");

需要注意的是,Singleton集合是不可變的,即不能向其中添加或刪除元素。如果需要添加或刪除元素,需要創(chuàng)建一個新的集合對象并賦值。此外,Singleton集合的元素只能通過迭代器進行訪問。

set與list的區(qū)別:

list和set是Java中兩種常用的集合類型,它們的主要區(qū)別在于以下幾個方面:

1. 元素順序
list是有序集合,即它維護元素的插入順序,并且可以根據(jù)元素的索引(即插入順序)進行訪問和操作。set是無序集合,它不維護元素的插入順序,并且不能根據(jù)元素的索引進行訪問和操作。
2. 元素的唯一性
list可以包含重復元素,即同一個元素可以出現(xiàn)多次;set元素是唯一的,即同一個元素只能出現(xiàn)一次。
3. 實現(xiàn)方式
list可以通過數(shù)組或鏈表實現(xiàn);set可以通過哈希表或樹結構實現(xiàn)。因此,list的訪問速度較快,但是添加、刪除元素和查找元素需要較長的時間;而set的添加、刪除元素和查找元素速度較快(平均時間復雜度為O(1)),但是訪問元素需要較長的時間(時間復雜度為O(n))。

總之,如果需要維護元素的順序、允許包含重復元素、并且需要根據(jù)索引進行訪問和操作,應該使用list;如果需要保證元素的唯一性、不需要維護元素的順序,并且查找、添加與刪除操作的性能要求較高,應該使用set。

雙列集合:

Java中的雙列集合指的是一種包含兩個元素的集合,它們可以存儲類型不同的鍵值對,通常用于構建關聯(lián)數(shù)組、映射等數(shù)據(jù)結構。在Java中,雙列集合主要有以下幾種:

1. Map
Map是一種鍵值對映射的集合,其中鍵和值都可以是任意類型的對象。Map中的鍵是唯一的,因此不能存在重復的鍵。常用的實現(xiàn)類包括HashMap、LinkedHashMap、TreeMap等。

示例代碼:

Map<String, Integer> map = new HashMap<>();
map.put("Java", 100);
map.put("Python", 90);
map.put("C++", 80);

map常見的實現(xiàn)類:?

1. Hashtable
Hashtable是一種線程安全的鍵值對映射集合,與HashMap類似,但它的所有方法都是同步的。Hashtable也不允許鍵和值為空。Hashtable的實現(xiàn)方式是通過哈希表實現(xiàn)的。

示例代碼:

Hashtable<String, Integer> hashtable = new Hashtable<>();
hashtable.put("Java", 100);
hashtable.put("Python", 90);
hashtable.put("C++", 80);

2. LinkedHashMap
LinkedHashMap是一種維護插入順序的Map,它記錄了元素的插入順序,并可以按照插入順序進行遍歷。LinkedHashMap是通過哈希表和雙向鏈表實現(xiàn)的。

示例代碼:

Map<String, Integer> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put("Java", 100);
linkedHashMap.put("Python", 90);
linkedHashMap.put("C++", 80);

3. TreeMap
TreeMap是一種按照鍵的自然順序或者比較器順序進行遍歷的有序Map。默認情況下,TreeMap按照鍵的自然順序進行遍歷,如果需要自定義排序規(guī)則,可以通過實現(xiàn)Comparator接口實現(xiàn)。TreeMap是通過紅黑樹實現(xiàn)的。

示例代碼:

Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put("Java", 100);
treeMap.put("Python", 90);
treeMap.put("C++", 80);

需要注意的是,Java中的雙列集合都是基于Map接口實現(xiàn)的,因此它們都具有Map接口的基本方法,如put、get、containsKey等。在使用雙列集合時,需要根據(jù)具體的使用場景和性能要求選擇合適的實現(xiàn)類。

map的特點:

Map是一種鍵值對的數(shù)據(jù)結構,它的特點有以下幾個:

1. 存儲方式:Map 以鍵值對的形式來儲存數(shù)據(jù),即每個鍵都與一個值相關聯(lián)。這種方式方便了數(shù)據(jù)的快速查找和訪問,比如可以通過鍵快速獲取對應的值。

2. 獨一無二的鍵:Map 中的鍵是唯一的,即同一時刻只能存在一個與給定鍵相關聯(lián)的值。如果插入的鍵已經存在,則新插入的值會覆蓋舊值。

3. 無序性:Map 中的鍵值對是無序的,不像數(shù)組和列表那樣有固定的順序。我們可以根據(jù)鍵來進行查找和訪問,而不關心它們在 Map 中的位置。

4. 可以存儲不同類型的值:Map 中的鍵值對可以存儲不同類型的數(shù)據(jù),這使得 Map 成為存儲和操作各種類型數(shù)據(jù)的理想數(shù)據(jù)結構。

5. 可以動態(tài)修改:Map 是一種動態(tài)數(shù)據(jù)結構,它可以根據(jù)需要進行插入、刪除或修改鍵值對,這使得它非常靈活和實用。

總結:

? ? ? ? 本文詳細的介紹了單列集合與雙列集合,為我們搭建了集合的一個基本的體系構架,后面我們也會一步一步的完善這些構架里面的內容。

如果我的內容對你有幫助,請點贊,評論,收藏。創(chuàng)作不易,大家的支持就是我堅持下去的動力!

【從零開始學習JAVA | 第二十三篇】集合體系結構,【從零開始學習JAVA】,數(shù)學建模

?

?

到了這里,關于【從零開始學習JAVA | 第二十三篇】集合體系結構的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【從零開始學習JAVA | 第二十二篇】BigInteger

    【從零開始學習JAVA | 第二十二篇】BigInteger

    目錄 ?前言: ?BigInterger: BigInteger常見的方法: 總結: ? ? ? ? 本篇我們將介紹BigInteger這個比較實用一點的API,這個API在我們實際寫項目中都是很實用的API,因此大家應該對這個API有更加熟練的掌握。 在Java中,整數(shù)類型int和long的取值范圍是有限的,超出該范圍的整數(shù)無法

    2024年02月15日
    瀏覽(36)
  • 【從零開始學習JAVA | 第二十九篇】Stream流

    【從零開始學習JAVA | 第二十九篇】Stream流

    目錄 前言: Stram流: 設計目標: 使用步驟: 1.先得到一條Stream流,并把數(shù)據(jù)放上去。 2.利用Stream流中的各種API進行操作。 使用Stream流的注意事項: 總結: ? ? ? ? 本文我們將學習Stream流,他就像流水線一樣,可以對我們要處理的對象進行逐步處理,最終達到我們想要的效果

    2024年02月17日
    瀏覽(33)
  • 【從零開始學習JAVA | 第二十七篇】JAVA期末練習(PTA)

    【從零開始學習JAVA | 第二十七篇】JAVA期末練習(PTA)

    目錄 前言: R7-5 Count the letters in a string (統(tǒng)計字符串中的字符) R7-1 找素數(shù) R7-3 電話號碼同步(Java) 總結: ????????臨近期末,我也更新一下PTA上的JAVA大題,希望各位都可以考出一個好的成績。 (Count the letters in a string) (統(tǒng)計字符串中的字符) Write a method that counts th

    2024年02月16日
    瀏覽(123)
  • 【從零開始學習JAVA | 第二十篇】常見API介紹 Math

    【從零開始學習JAVA | 第二十篇】常見API介紹 Math

    目錄 前言: ?MATH: Math類中的常用方法: 總結: ? ? ? ? ? ? ? ? 本篇往后我們會詳細介紹一些常用的API,今天我們介紹的是Math的常用方法。但是其實我們不需要記住所有的方法,在日常工作中自己學會查詢API文檔就可以了。 Math類是Java中提供的一個標準類, 它包含了許多

    2024年02月15日
    瀏覽(27)
  • 【從零開始學習JAVA | 第二十一篇】常見API介紹 System

    【從零開始學習JAVA | 第二十一篇】常見API介紹 System

    目錄 前言: System: System類中靜態(tài)方法: 總結: ? ? ????????? ? system 是一個很底層的 API,是一個工具類, 提供了一些與系統(tǒng)相關的方法 。他在我們寫項目的時候提供了一些非常實用的方法,本篇將會介紹一些實用的system API 的方法調用。 System類是Java語言提供的一個

    2024年02月15日
    瀏覽(90)
  • 從零開始學習 Java:簡單易懂的入門指南之Collection集合及l(fā)ist集合(二十一)

    從零開始學習 Java:簡單易懂的入門指南之Collection集合及l(fā)ist集合(二十一)

    1.1數(shù)組和集合的區(qū)別 相同點 都是容器,可以存儲多個數(shù)據(jù) 不同點 數(shù)組的長度是不可變的,集合的長度是可變的 數(shù)組可以存基本數(shù)據(jù)類型和引用數(shù)據(jù)類型 集合只能存引用數(shù)據(jù)類型,如果要存基本數(shù)據(jù)類型,需要存對應的包裝類 1.2集合類體系結構 1.3Collection 集合概述和使用 Collec

    2024年02月10日
    瀏覽(21)
  • 從零開始學習 Java:簡單易懂的入門指南之不可變集合、方法引用(二十六)

    1.1 什么是不可變集合 ? 是一個長度不可變,內容也無法修改的集合 1.2 使用場景 ? 如果某個數(shù)據(jù)不能被修改,把它防御性地拷貝到不可變集合中是個很好的實踐。 ? 當集合對象被不可信的庫調用時,不可變形式是安全的。 簡單理解: ? 不想讓別人修改集合中的內容 比如

    2024年02月07日
    瀏覽(25)
  • 從零開始學習 Java:簡單易懂的入門指南之泛型及set集合(二十二)

    從零開始學習 Java:簡單易懂的入門指南之泛型及set集合(二十二)

    1.1泛型概述 泛型的介紹 ? 泛型是JDK5中引入的特性,它提供了編譯時類型安全檢測機制 泛型的好處 把運行時期的問題提前到了編譯期間 避免了強制類型轉換 泛型的定義格式 類型: 指定一種類型的格式.尖括號里面可以任意書寫,一般只寫一個字母.例如: 類型1,類型2…: 指定多

    2024年02月09日
    瀏覽(42)
  • 【第二十三篇】Burpsuite+SQL注入實現(xiàn)登錄繞過等(靶場實戰(zhàn)案例)

    存在一個業(yè)務場景如下 篩選商品時,后端查詢語句如下: 只有商品名匹配且該商品已發(fā)布(released=1),客戶端才能回顯數(shù)據(jù)。 點擊Lifestyle時,頁面回顯 生活方式 有關商品,并可知參數(shù)以GET方

    2024年04月10日
    瀏覽(29)
  • 【從零開始學習C++ | 第二十二篇】C++新增特性(下)

    【從零開始學習C++ | 第二十二篇】C++新增特性(下)

    目錄 前言: 類型推導: constexpr: 初始化列表: 基于范圍的for循環(huán): 智能指針之unique ptr Lambda表達式: 總結: ????????本文我們將繼續(xù)介紹? ?C++ 11 新增十大特性的剩余六個,如果沒有看過介紹前四個特性的小伙伴的可以點進我C++的專欄就可以看到。 類型推導(

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包