collection與collections的區別

public class TestCollections {
   
    public static void main(String args[]) {
        //注意List是實現Collection接口的
        List list = new ArrayList();
        double array[] = { 112, 111, 23, 456, 231 };
        for (int i = 0; i < array.length; i++) {
            list.add(new Double(array[i]));
        }
        Collections.sort(list);//排序
        for (int i = 0; i < array.length; i++) {
            System.out.print(list.get(i)+" ");
        }
        // 結果:23.0 111.0 112.0 231.0 456.0
        System.out.println("\n--------------------------");
        Collections.shuffle(list);//混排
        for (int i = 0; i < array.length; i++) {
            System.out.print(list.get(i)+" ");
        }
        
        System.out.println("\n--------------------------");
        Collections.reverse(list);//反轉
        for (int i = 0; i < array.length; i++) {
            System.out.print(list.get(i)+" ");
        }
       
    }
}

Collection:

  是集合類的上層接口。本身是一個Interface,裏面包含了一些集合的基本操作Collection接口時Set接口和List接口的父接口Collection接口的意義是爲各種具體的集合提供了最大化的統一操作方式。

Collections

  是一個集合框架的幫助類,裏面包含一些對集合的排序,搜索以及序列化的操作。最根本的是Collections是一個類。它包含有各種有關集合操作的靜態多態方法。此類不能實例化,就像一個工具類,服務於Java的Collection框架

Collections.sort(list);//list集合進行排序


二、collection集合

    |--list  特點:有序,能重複

        |--arraylist 查詢快,增刪慢 底層數據是數組數據結構

        |--linklist 增刪快,查詢慢  底層數據是鏈表數據結構      

    |--set 特點:無序,不可重複

        |--hashset 底層數據是哈希表  無序

        |--treeset 底層數據是二叉樹 可以對set集合中的元素進行排序

其中對於arraylisthashset來說,他們的查詢方式不同

    arraylist是依據equals來查詢

    hashset是先依據hashcode進行比較,若相同在進行equals比較來查詢

因此在使用時一般都要複寫hashcode()方法和equals()方法。

treeset 在使用時,添加數據會自動進行自然排序,若添加的都是new出來的對象,這個時候就無法排序而進行報錯,處理辦法就是讓對象類實現compare接口並複寫compareTo方法。

 map​集合

  |--hashtable 不允許有nullnull值得情況

  |--hashmap  允許有nullnull值得情況

  |--treemap  可以對鍵進行排序

map集合特點:該集合存儲 鍵-值 對,且鍵唯一。

爲什麼遍歷Map集合可以用entrySet()而不是entryList()?因爲map中key值不可以重複出現


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章