集合---單列集合Collection
阿新 • • 發佈:2020-08-08
集合和陣列的區別
- 陣列可以存任何資料型別,集合只能存引用資料型別
- 如果集合想存基本資料型別,泛型中要定義它們的包裝類。
- 陣列的長度不可變,集合的長度可變
集合的體系結構
Collection集合
- 是單列集合的頂層介面
- 它提供更具體的子介面List和Set實現
Collection介面中提供的常用方法方法:
1 Collection<String> collection = new ArrayList<>(); 2 collection.add("aaa");//向集合中新增元素 3 boolean b = collection.remove("aaa");//刪除集合中的元素並返回布林型結果true表示刪除成功,false表示刪除失敗 4 int size = collection.size();//返回集合已存資料的個數 5 boolean b1 = collection.removeIf((String s) -> { 6 return s.length()==2; 7 });//根據條件刪除元素 8 boolean result = collection.contains("aaa");//判斷集合中是否有指定元素 9 collection.clear();//清除集合內所有元素
Iterator迭代器(集合特有)
- 單列集合可以直接使用迭代器
- 建立一個迭代器物件:Iterator<String> it = list.iterator();預設指向集合第一個索引
- boolean hasNext(); 判斷集合索引處是否含有元素
- next(); 取出索引處元素,並將迭代器指向集合的索引位置向下推進一次
public static void main(String[] args) { ArrayList<String> list=new ArrayList<>(); list.add("sss"); list.add(
增強for
- 格式:for(Object o:集合或陣列名){o就是從集合或陣列中的每一個第三方中間變數,可對其進行操作但修改不會改變原集合或者陣列}
- 實現Iterable介面的類才可以使用迭代器和增強for(單列集合Collection實現了Iterable,雙列集合Map沒有實現)
- 在迭代器中不能通過集合物件增刪元素,不然會發生併發錯誤
下面先講單列集合:
List(有序,有索引,可重複)
list集合的常用方法:
-
public static void main(String[] args) { List<String> list=new ArrayList<>();//多型形式,只能有List中的方法 list.add("aaa");// list.add("aaa"); list.add("aaa"); list.add("aaa"); list.add("aaa"); list.add(3,"ooo");//在制定索引增加元素 String s1 = list.get(0);//在制定索引獲得制定索引元素 String remove = list.remove(1);//刪除指定索引元素 String s3 = list.set(0, "nnn");//設定指定索引元素 }
ArrayList(底層是陣列查詢快,增刪慢)
1.Arraylist第的底層結構是陣列,在ArrayList建立物件的時候,預設長度是0,也就是空集合,但是在add();方法執行後會把集合長度變為10,所以我們一般認為ArrayList集合的預設長度是10,當新增的元素的格式超過10的時候,會自動建立一個新的集合,長度為原來集合的1.5倍,然後把原來集合的所有資料全部賦值給新的集合。
2.size
size是集合建立時的底層變數,它的預設值是0,當每次使用add();方法向集合中新增元素的時候,size就會+1;指向下一個將要被新增元素的索引,所以size也可以理解為集合中當前擁有的元素個數。
LinkedList
1.LinkedList(底層結構是連結串列,查詢慢,增刪快)
public static void main(String[] args) { LinkedList<String> list = new LinkedList<>(); list.addFirst("aaa");//新增元素到頭部 list.add("sss"); list.addLast("zzz");//新增元素到尾部 list.removeFirst();//刪除頭部元素 list.removeLast();//刪除尾部元素 list.getFirst();//獲得頭部元素 list.getLast();//獲得尾部元素 }