集合 — 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