日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

List集合、常用数据结构基本了解

發布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List集合、常用数据结构基本了解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

List接口
List接口特點:

  • 它是一個元素存取有序的集合。例如,存元素的順序是11、22、33。那么集合中,元素的存儲就是按照11、22、33的順序完成的)。
  • 它是一個帶有索引的集合,通過索引就可以精確的操作集合中的元素(與數組的索引是一個道理)。
  • 集合中可以有重復的元素,通過元素的contains方法,來比較是否為重復的元素。
  • 數據結構
    數據存儲的常用結構有:棧、隊列、數組、鏈表和紅黑樹。

    :stack,又稱堆棧,它是運算受限的線性表,其限制是僅允許在標的一端進行插入和刪除操作,不允許在其他任何位置進行添加、查找、刪除等操作.
    特點:先進后出,棧的入口、出口的都是棧的頂端位置
    ● 先進后出。
    ● 棧的入口、出口的都是棧的頂端位置。

    隊列:queue,簡稱隊,它同堆棧一樣,也是一種運算受限的線性表,其限制是僅允許在表的一端進行插入,而在表的另一端進行刪除。
    特點:先進先出,隊列的入口、出口各占一側
    ● 先進先出(存進去的元素,要在后它前面的元素依次取出后,才能取出該元素)。
    ● 隊列的入口、出口各占一側。例如,下圖中的左側為入口,右側為出口。


    數組:Array,是有序的元素序列,數組是在內存中開辟一段連續的空間,并在此空間存放元素。
    特點:查詢快,增刪慢
    ● 查找元素快:通過索引,可以快速訪問指定位置的元素

    ● 增刪元素慢
    ○ 指定索引位置增加元素:需要創建一個新數組,將指定新元素存儲在指定索引位置,再把原數組元素根據索引,復制到新數組對應索引的位置。

    ○ 指定索引位置刪除元素:需要創建一個新數組,把原數組元素根據索引,復制到新數組對應索引的位置,原數組中指定索引位置元素不復制到新數組中。

    鏈表:LinkedList是一個雙向鏈表,由一系列結點node(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。我們常說的鏈表結構有單向鏈表與雙向鏈表,那么這里給大家介紹的是單向鏈表。

    特點:查詢慢、增刪快,多個結點之間,通過地址進行連接
    ● 多個結點之間,通過地址進行連接。

    ● 查找元素慢:想查找某個元素,需要通過連接的節點,依次向后查找指定元素
    ● 增刪元素快:
    ○ 增加元素:只需要修改連接下個元素的地址即可。

    ○ 刪除元素:只需要修改連接下個元素的地址即可。

    紅黑樹:二叉樹binary tree ,是每個結點不超過2的有序樹(tree)
    特點:紅黑樹的出現,就是用來提高搜索效率的.

    java.util.LinkedList集合數據存儲的結構是鏈表結構。方便元素添加、刪除的集合。
    LinkedList是一個雙向鏈表

    HashSet集合介紹
    java.util.HashSet是Set接口的一個實現類,它所存儲的元素是不可重復的,并且元素都是無序的(即存取順序不一致)。java.util.HashSet底層的實現其實是一個java.util.HashMap支持。
    HashSet是根據對象的哈希值來確定元素在集合中的存儲位置,因此具有良好的存取和查找性能。保證元素唯一性的方式依賴于:hashCode與equals方法。

    HashSet集合存儲數據的結構(哈希表)
    哈希表是由數組+鏈表+紅黑樹(JDK1.8增加了紅黑樹部分)實現的。

    可變參數
    修飾符 返回值類型 方法名(參數類型… 形參名){ }

    Collections
    ● java.utils.Collections是集合工具類,用來對集合進行操作。部分方法如下:
    ● public static boolean addAll(Collection c, T… elements):往集合中添加一些元素。
    ● public static void shuffle(List<?> list) 打亂順序:打亂集合順序。
    ● public static void sort(List list):將集合中元素按照默認規則排序。
    ● public static void sort(List list,Comparator<? super T> ):將集合中元素按照指定規則排序。

    Comparator比較器
    public static void sort(List list):將集合中元素按照默認規則排序。
    public static void sort(List list,Comparator<? super T> )
    public int compare(String o1, String o2):比較其兩個參數的順序。
    兩個對象比較的結果有三種:大于,等于,小于。
    如果要按照升序排序,
    則o1 小于o2,返回(負數),相等返回0,01大于02返回(正數)
    如果要按照降序排序
    則o1 小于o2,返回(正數),相等返回0,01大于02返回(負數)

    總結

    以上是生活随笔為你收集整理的List集合、常用数据结构基本了解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。