一、集合與陣列的區別
集合:只用於存放引用資料型別,長度可以變換。list 有序存放(可以存重複物件),set無序存放(不能存放重複物件)
陣列:可以用於存放基本資料型別也可以存放引用資料型別,可以存放重複物件,有序排列。
二、集合的整體框架
1.集合根 介面 collection<>
2.子介面 list<>,set<>
3.list<>的實現類(常用):(1)arraylist<> (2) linkedlist (3) vector
4.set<>的實現類(常用): (1)hashset<> (2)treeset<>
三、詳細介紹
1.collection<> 所有集合的根介面:(有序存放)
內部提供了常用方法:
collection <>介面的實現類都重寫了tostring()方法,所以可以直接通過system.out.println(物件名)來檢視整個集合中的元素。
2. list<>介面:
(1)可以存放相同的元素。
(2)保證存放順序。
(3)可以根據索引來查詢元素。
內部的常用方法:
2.1 arraylist<>實現類(開發時常用)
(1)底層是陣列,適合遍歷,不適合增刪改查。
(2)執行緒不安全,效率高。
2.2linkedlist<>實現類
(1)底層是鍊錶,適合增刪改查,不適合遍歷。
(2)執行緒安全,效率低。
2.3vector<>實現類
(1)底層是陣列,適合遍歷,不適合增刪改查。
(2)執行緒安全,效率低。
3.set<>介面
(1)無序存放元素。
(2)不能存放相同元素。
3.1hashset<>實現類
(1)底層使用陣列加鍊表形式存放資料。
(2)根據存放元素的hash值,經過雜湊表演算法後放入相應陣列中的鍊錶中去。
(3)判斷是否同一物件:根據hash值和equals 方法:
因為:(1)如果o1.equals(o2),那麼o1.hashcode() == o2.hashcode()總是為true的。
(2)如果o1.hashcode() == o2.hashcode(),並不意味著o1.equals(o2)會為true。
3.1treeset<>實現類
(1)底層使用紅黑樹儲存資料。
(2)構造方法 1. treeset<>();
空參的構造方法,採用自然排序,存放資料按照自然排序存放。第乙個資料為根節點,然後接下來每個資料進行比較,大的放右邊,小的放左邊。
2.treeset(comparator super e> comparator)
構造乙個新的空 treeset,它根據指定比較器進行排序。
根據使用者自定義的比較器來存放資料。
Map集合的概述和基本用法
一 map集合的概述 a map集合的概述 map集合和collection集合有所不同 map 是成對出現的,有就是說他是乙個雙列集合,map集合裡面的元素是由鍵和值組成。由於是成對出現我們可以理解成為夫妻 注意 map集合中的鍵是不能重複的,但是值可以重複,乙個鍵只能對應乙個值 b map和co...
Python集合基本用法
author f list 1 1,4,6,8,6,34,77 list 1 set list 1 列表轉集合 集合和字典一樣 都是無序的 print list 1,type list 1 list 2 set 4,5,6,98,2,5 print list 1,list 2 交集print lis...
NSScanner類的基本用法
nsscanner是乙個類,用於在字串中掃瞄指定的字元,尤其是把它們翻譯 轉換為數字和別的字串。可以在建立nsscaner時指定它的string屬性,然後scanner會按照你的要求從頭到尾地掃瞄這個字串的每個字元。建立乙個scanner nsscanner是乙個類族,nsscanner是其中公開的...