集合 — collection
爲什麼要使用集合 — 因爲數組不能滿足需求
數組缺點: 只能保存同一種類型的數據 一但聲明數組長度就不能改變
所以集合: 可以保存不同類型的對象(不能存基本數據類型 但是直接把基本數據類型放進去時 系統會自動把基本數據類型轉換成它的包裝類) 集合的長度是可變的
集合collection接口中的方法
因爲collection是接口 所以不能直接創建對象
我們可以用多態的方式來創建
Collection collection = new ArrayList();
// 添加
collection.add("a"):
collection.add("b"):
collection.add("c"):
System.out.println(collection.toString());
// 獲取集合的長度
int s = collection.size();
System.out.println(s);
// 判斷是否包含某個元素
boolean contains = collection.contains("a");
System.out.println(contains);
// 從集合中刪除一個元素
// 操作的是集合本身
boolean remove = collection.remove("a");
System.out.println(remove);
System.out.println(collection);
// 判斷集合是否爲空
boolean empty = collection.isEmpty();
System.out.println(empty);
// 清空數組
collection.clear();
System.out.println(collection);
結果
[a, b, c]
3
true
true
[b, c]
fasle
[]
addAll — 將後一個集合中的所有元素添加到前一個集合的末尾
兩個集合中重複的元素也會添加
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
Collection c2 = new ArrayList();
c2.add("d");
c2.add("e");
c2.add("f");
boolean addAll = c1.addAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println(addAll);
結果
[a, b, c, d, e, f]
[d, e, f]
true
removeAll — 將兩個集合中重合的部分刪除
誰調用 就刪除誰的元素 另一個集合不變
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("b");
boolean removeAll = c1.removeAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println(removeAll);
結果
[c]
[a, b, b]
true
retainAll — 只保留兩個集合中重合的元素
誰調用保留在誰那裏 另一個集合不變
保留後的集合 和原集合比較 發生變化返回true
沒發生變化 返回flase
Collection c1 = new ArrayList();
c1.add("a");
c1.add("b");
c1.add("c");
Collection c2 = new ArrayList();
c2.add("a");
c2.add("b");
c2.add("b");
boolean retainAll = c1.retainAll(c2);
System.out.println(c1);
System.out.println(c2);
System.out.println(retainAll);
結果
[a, b]
[a, b, b]
true
迭代器 — 遍歷
iterator() — 返回一個迭代器
hasNext() — 判斷集合中有沒有下一個值
next() — 返回迭代的下一個元素 循環裏的迭代過程中只能調用一次
Collection collection = new ArrayList();
collection1.add("a");
collection1.add("b");
collection1.add("c");
// 調用迭代器
Iterator iterator = collection.iterator();
// 循環遍歷
while (iterator.hasNext()) {
Object next = iterator.next();
System.out.println(next);
}
結果
a
b
c
d