单双列集合总述
Collection[單列集合]接口
有List 和 Set子接口 和Map接口[雙列集合]并列
**1.**List接口 實(shí)現(xiàn)類:ArrayList 和 LinkedList ;特點(diǎn):有序,可重復(fù),有對索引的增刪改查相對操作的方法
a.ArrayList:底層為數(shù)組 查詢快[根據(jù)地址和索引查找],增刪慢
b.LinkedList:底層為鏈表 查詢慢,增刪快[直接修改地址指向]
**2.**Set接口 實(shí)現(xiàn)類:TreeSet 和 HashSet ;特點(diǎn):無序,不可重復(fù),沒有特有方法,全部繼承父類
a.TreeSet:底層為紅黑樹:會(huì)自動(dòng)排序,需要指定排序順序,有兩種方式指定
(1)實(shí)現(xiàn)Comparable接口,重寫compareTo方法
(2)創(chuàng)建比較器Collator,重寫compare方法
b.HashSet:底層為哈希表【鏈表,數(shù)組,[鏈表滿8為]紅黑樹】hashCode方法
默認(rèn)比較地址值,可重寫equals方法和hashCode方法比較屬性,保持元素的唯一性
附圖:
Map[雙列集合]接口
實(shí)現(xiàn)類有TreeMap 和 HashMap
**1.**TreeMap:底層為紅黑樹會(huì)自動(dòng)對鍵排序,需要指定排序順序,有兩種方式指定
(1)實(shí)現(xiàn)Comparable接口,重寫compareTo方法
(2)創(chuàng)建比較器Comparator,重寫compare方法
**2.**HashSet:底層為哈希表【鏈表,數(shù)組,[鏈表滿8為]紅黑樹】hashCode方法
默認(rèn)比較地址值,可重寫鍵的equals方法和鍵的hashCode方法比較鍵的屬性,保持元素的唯一性
注【HashSet,HashTree不能對其進(jìn)行排序,只能打印出來的時(shí)候排序】
附圖:
集合中的可變參數(shù)及初始化賦值
可變參數(shù)
//定義一個(gè)方法求n個(gè)數(shù)的和 public class Demo1 {public static void main(String[] args) {int sum = getSum(1, 2, 3, 4, 5);System.out.println(sum);}//參數(shù)使用可變參數(shù),如果有并列參數(shù),則需要放在最后private static int getSum(int number,int... arr) {int sum = 0;//number="10";//賦值無效,不能應(yīng)用于測試類for (int t : arr) {sum += t;}return sum;} }打印結(jié)果: ---------------------------------------------------------- 14初始化賦值
// 集合批量添加元素方法 public class Demo2 {public static void main(String[] args) {//List of 集合批量添加元素方法[固定集合,不可再往其中添加元素]//List集合List<String> list = List.of("a", "b", "c", "d", "e");//底存集合不可變//Set集合//傳遞的參數(shù)當(dāng)中不能有重復(fù),否則運(yùn)行報(bào)錯(cuò)[參數(shù)非法添加異常]Set<String> set = Set.of("a", "b", "c", "d", "e");//Map集合//傳遞的參數(shù)鍵當(dāng)中不能有重復(fù),否則運(yùn)行報(bào)錯(cuò)[參數(shù)非法添加異常]Map<String, String> map1 = Map.of("zhangsan", "江蘇", "lisi", "上海");//of Entries提高閱讀性,它會(huì)將鍵和值封裝成鍵值對Map<String, String> map2 = Map.ofEntries(Map.entry("zhangsan","江蘇"),Map.entry("lisi","上海"));//可結(jié)合集合的帶參構(gòu)造,實(shí)現(xiàn)集合的初始化,之后可繼續(xù)添加元素ArrayList<String> list1 = new ArrayList<>(list);//接收的集合泛型范圍要大于List.ofArrayList<Integer> list2 = new ArrayList<>(List.of(5,4,3,2,1));System.out.println(list1);System.out.println(list2);} } 打印結(jié)果: -------------------------------------------------------------------- [a, b, c, d, e] [5, 4, 3, 2, 1]注:【集合存儲的都是引用數(shù)據(jù)類型】
總結(jié)
- 上一篇: 处理可能发生的异常
- 下一篇: 公司网络故障怎么处理(公司网络故障怎么处