Java集合


集合是數據存儲中,重要的容器對象。


單列集合

  • Collection 單例集合根接口
    • List 實現了List接口的集合類 特點: 有序,可重復
      • ArrayList 實現了List接口 底層使用數組 特點:速度快,增刪慢
      • LinkedList 底層使用鏈表數據結構, 特點: 查詢速度慢,增刪快
      • Vector 底層使用數組 特點:對比ArrayList線程安全,效率低
    • Set 實現了Set接口的集合類 特點: 無序, 不可重復
      • HashSet 底層使用Hash表實現, 特點: 存取速度快
      • TreeSet 底層使用二叉樹實現 特點: 排序存儲

<pre>注意: HashSet <h6>1.HashSet先調用HashCode方法算出Hash值,對比Hash值.相同進行第二步,建議重寫HashCode方法
</h6><h6>2.調用對象的Equals方法,建議重寫Equals方法</h6>
</pre>
<pre>注意:TreeSet<h6>1.元素具備自然排序的特點,就按照自然順序進行排序</h6><h6>2.如果元素不具備自然排序的特點,那么元素需要實現Comparable接口,自定義比較規則,重寫CompareTo方法</h6></pre>


雙列集合

  • Map 鍵值對存儲 鍵不可重復,值可重復
    • HashMap 底層哈希表
    • TreeMap 底層二叉樹

ArrayList Demo

    public static void main(String[] args) {
        ArrayList<String> array = new ArrayList<String>();
        array.add("First");
        array.add("Second");
        array.add("Three");
        for (int i = 0; i < array.size(); i++) {
            System.out.println(array.get(i));
        }
    }

Console

First
Second
Three


HashSet Demo

    public static void main(String[] args) {
        HashSet<String> hSet = new HashSet<>();
        hSet.add("First");
        hSet.add("Second");
        hSet.add("Three");
        // Iterator 遍歷
        Iterator<String> it = hSet.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + ",");
        }
    }
// 注意 :while中不能直接修改元素個數

Console

Second,First,Three,


HashMap Demo

    public static void main(String[] args) {
        HashMap<String,Integer> map = new HashMap<>();
        map.put("Fisrt", 1);
        map.put("Second",2);
        map.put("Three", 3);
        Set<Entry<String,Integer>> entrys= map.entrySet();
        // 遍歷
        for (Entry<String, Integer> entry : entrys) {
            System.out.println("Key :" + entry.getKey() + "Value :" + entry.getValue());
        }
    }

Console

Key :SecondValue :2
Key :FisrtValue :1
Key :ThreeValue :3


給個github follow me的鏈接,上面有很多初學者可供學習的資料,項目.

<a>https://github.com/SuperZee</a>

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • title: java集合框架學習總結 tags:集合框架 categories:總結 date: 2017-03...
    行徑行閱讀 1,708評論 0 2
  • 以下是《瘋狂Java講義》中的一些知識,如有錯誤,煩請指正。 集合概述 Java集合可以分為Set、List、Ma...
    hainingwyx閱讀 555評論 0 1
  • 3.3 集合 一方面, 面向對象語言對事物的體現都是以對象的形式,為了方便對多個對象的操作,就要對對象進行存儲。另...
    閆子揚閱讀 752評論 0 1
  • 為什么會出現集合類? 我們都知道數組的弊端是長度固定。這樣一來,數組就不能滿足變化的要求。所以,Java就提供了集...
    官先生Y閱讀 1,077評論 0 3
  • 因為孩子有出國讀書的想法,所以去年就開始給孩子申請學校。我們給孩子聯系的學校,就在美國弗吉尼亞州,那里有山有水,據...
    錦墨hhy閱讀 243評論 0 0