集合類與泛型

集合類

數組Array和集合的區別:

(1)數組是大小固定的,並且同一個數組只能存放類型一樣的數據(基本類型/引用類型)

(2)JAVA集合可以存儲和操作數目不固定的一組數據。 (3)若程序時不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用。

聯繫:使用相應的toArray()和Arrays.asList()方法可以回想轉換。

這裏寫圖片描述

ArrayList

常用api有:
1.get
2.set
3.add
4.remove
對象是object類型,四種方法可實現增刪改查
5.獲取長度 size
6.獲取位置indexof

LinkedList

ArrayList 和 LinkedList的區別
ArrayList 底層的實現是動態數組
LinkedList 底層是鏈表

區別: 查詢上, ArrayList效率比較高,linkedlist比較低
增刪上, linkedlist效率比較高,rrayList效率低

如果不知道增刪多還是查詢多就用, ArrayList

LinkedList 特有方法
特有方法
addFirst()
addLast()
removeFirst()
removeLast()

5) List集合遍歷的三種方式
        a) 普通for循環
        b) 增強for
        c) 迭代器


        Iterator it=a.iterator();
        while(it.hasNext()) {
        Object obj= it.next();
        System.out.println(obj);
        }

           /*for (int i = 0; i < a.size(); i++) {
            System.out.println(a.get(i));
        }*/


        for (Object object : a) {
            System.out.println(object);
        }

collection 規定的其他方法
clear(); isEmpty(); iterator(); toArray(); contains();

set

對集中成員的訪問和操作是通過集中對象的引用進行的,所以集中不能有重複對象,set集合中的元素是唯一的,無序的
遍歷只有兩種方式
添加時遍歷集合判斷是否有重複的,默認根據地址(hashcode) 判斷,特殊情況需要重寫equals方法

map

這裏寫圖片描述

泛型

泛型是一個很寬泛,複雜的概念,這裏做簡單介紹。
五) 泛型的簡單使用

ArrayList<User> alist = new ArrayList<User>();
    alist只能存入 User類型的對象
    get(int index)的返回值也是User類型
HashMap<String,User> hm = new HashMap();
    hm可以的元素的key只能是String,value只能是User類
    get(String key)的返回值也是User類型

關於泛型類/泛型接口/方法  後面會提到

爲了定義一個類爲泛型類型,需要將泛型類型放在類名之後,爲定義一個方法爲泛型類型,需要將泛型類型放在方法返回類型之前
這是關於別人寫的泛型的一篇博客

集合的操作類的幾個常用方法

1.   sort
        自定義類排序
             1.實現comparable接口,添加泛型避免強轉
             2.重寫compareTo方法    
                 1.如果是int直接比較差值,返回結果
                 2.double類型可以通過if語句,三目運算,返回結果,也可以調用MAth.ceil()方法,向上取整(-0.5)他們的差值判斷???(先判斷相等)
int result=this.math-o.math;  
result=result==0?this.chinese-o.chinese:result;
result=result==0?this.english-o.english:result;
return result;

2.reverse
反轉
3.binarysearsh
二分查找
4.max,min

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