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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 集合类

發布時間:2023/12/3 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 集合类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • List:一種有序列表的集合
  • Set:一種保證沒有重復元素的集合
  • Map:一種通過鍵值(key-value)查找的映射表集合

Java集合的設計有幾個特點:一是實現了接口和實現類相分離,例如,有序表的接口是List,具體的實現類有ArrayList,LinkedList等,二是支持泛型,我們可以限制在一個集合中只能放入同一種數據類型的元素, 例如:

List<String> list = new ArrayList<>(); // 只能放入String類型

最后,Java訪問集合總是通過統一的方式——迭代器(Iterator)來實現,它最明顯的好處在于無需知道集合內部元素是按什么方式存儲的。

不應該繼續使用的遺留類:

  • Hashtable:一種線程安全的Map實現;
  • Vector:一種線程安全的List實現;
  • Stack:基于Vector實現的LIFO的棧。

List主要接口:

  • 在末尾添加一個元素:void add(E e)
  • 在指定索引添加一個元素:void add(int index, E e)
  • 刪除指定索引的元素:int remove(int index)
  • 刪除某個元素:int remove(Object e)
  • 獲取指定索引的元素:E get(int index)
  • 獲取鏈表大小(包含元素的個數):int size()

可以通過List接口提供的of()方法,根據給定元素快速創建List:

List<Integer> list = List.of(1, 2, 5);

始終堅持使用迭代器Iterator來訪問List

原因:

  • 代碼復雜
  • get(int)方法只有ArrayList的實現是高效的,換成LinkedList后,索引越大,訪問速度越慢。
  • Iterator本身也是一個對象,但它是由List的實例調用iterator()方法的時候創建的。Iterator對象知道如何遍歷一個List,并且不同的List類型,返回的Iterator對象實現也是不同的,但總是具有最高的訪問效率。

    Iterator對象有兩個方法:boolean hasNext()判斷是否有下一個元素,E next()返回下一個元素。

    通過Iterator遍歷List永遠是最高效的方式

    Array 與 List 轉換

    • List 轉 Array:
      • 調用 list.toArray() 方法直接返回一個Object[]數組,這種方法會丟失類型信息,所以實際應用很少。
      • 給 list.toArray(T[]) 傳入一個類型相同的Array,List內部自動把元素復制到傳入的Array
    • Array 轉 List:
      通過List.of(T…)方法
    Integer[] array = { 1, 2, 3 };List<Integer> list = List.of(array);

    總結

    以上是生活随笔為你收集整理的Java 集合类的全部內容,希望文章能夠幫你解決所遇到的問題。

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