Collection
Collection介绍
- Collection 层次结构中的根接口。
- Collection表示一组对象,这些对象也称为collection的元素。
- JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Set 和 List、Queue)实现。此接口通常用来传递 collection,并在需要最大普遍性的地方操作这些 collection。
1.添加元素
- add(E obj):添加元素对象到当前集合中
- addAll(Collection<? extends E> other):添加other集合中的所有元素对象到当前集合中,即this = this ∪ other
代码示例
1 public class Demo05 { 2 public static void main(String[] args){ 3 //创建集合对象 4 //使用多态形式 5 Collection coll = new ArrayList(); 6 coll.add("小明"); 7 coll.add("小红"); 8 coll.add("小刚"); 9 System.out.println("coll的集合:" + coll); 10 11 Collection other = new ArrayList(); 12 other.add("大娃"); 13 other.add("二娃"); 14 System.out.println("other的集合:" + other); 15 16 coll.addAll(other); 17 System.out.println("addAll()后,coll的集合:" + coll); 18 } 19 }
运行结果
coll的集合:[小明, 小红, 小刚]
other的集合:[大娃, 二娃]
addAll()后,coll的集合:[小明, 小红, 小刚, 大娃, 二娃]
2.删除元素
- boolean remove(Object obj) :从当前集合中删除第一个找到的与obj对象equals返回true的元素。
1 public class Demo05 { 2 public static void main(String[] args){ 3 //创建集合对象 4 //使用多态形式 5 Collection coll = new ArrayList(); 6 coll.add("小明"); 7 coll.add("小红"); 8 coll.add("小刚"); 9 coll.add("小明"); 10 coll.add("小红"); 11 System.out.println(coll); 12 coll.remove("小红"); 13 System.out.println(coll); 14 } 15 }
运行结果
[小明, 小红, 小刚, 小明, 小红]
[小明, 小刚, 小明, 小红]
- boolean removeAll(Collection<?> coll):从当前集合中删除所有与coll集合中相同的元素。即this = this - this ∩ coll
1 public class Demo05 { 2 public static void main(String[] args){ 3 Collection coll = new ArrayList(); 4 coll.add("小明"); 5 coll.add("小红"); 6 coll.add("小刚"); 7 coll.add("小明"); 8 coll.add("小红"); 9 System.out.println(coll); 10 11 Collection other = new ArrayList(); 12 other.add("小绿"); 13 other.add("小黄"); 14 other.add("小红"); 15 System.out.println(other); 16 17 coll.removeAll(other); 18 System.out.println(coll); 19 } 20 }
运行结果
[小明, 小红, 小刚, 小明, 小红]
[小绿, 小黄, 小红]
[小明, 小刚, 小明]
3.判断
- boolean isEmpty():判断当前集合是否为空集合。
- boolean contains(Object obj):判断当前集合中是否存在一个与obj对象equals返回true的元素。
1 public class Demo05 { 2 public static void main(String[] args){ 3 Collection coll = new ArrayList(); 4 coll.add("小明"); 5 coll.add("小红"); 6 coll.add("小刚"); 7 System.out.println(coll); 8 9 System.out.println("coll是否为空呢? " + coll.isEmpty()); 10 System.out.println("小红是否在集合中:" + coll.contains("小红")); 11 12 13 }
运行结果
[小明, 小红, 小刚] coll是否为空呢? false 小红是否在集合中:true
- boolean containsAll(Collection<?> c):判断c集合中的元素是否在当前集合中都存在。即c集合是否是当前集合的“子集”。
public class Demo05 { public static void main(String[] args){ Collection coll = new ArrayList(); coll.add("小明"); coll.add("小红"); coll.add("小刚"); System.out.println(coll); Collection other = new ArrayList(); other.add("小绿"); other.add("小黄"); other.add("小红"); System.out.println(other); boolean flag = coll.containsAll(other); System.out.println(flag); Collection other2 = new ArrayList(); other2.add("小明"); other2.add("小红"); System.out.println(other2); boolean flag2 = coll.containsAll(other2); System.out.println(flag2); } }
运行结果
[小明, 小红, 小刚] [小绿, 小黄, 小红] false [小明, 小红] true
4.获取元素个数
- int size():获取当前集合中实际存储的元素个数
public class Demo05 { public static void main(String[] args){ Collection coll = new ArrayList(); coll.add("小明"); coll.add("小红"); coll.add("小刚"); System.out.println(coll); System.out.println(coll.size()); } }
运行结果
[小明, 小红, 小刚]
3
5.交集
- boolean retainAll(Collection<?> coll):当前集合仅保留与c集合中的元素相同的元素,即当前集合中仅保留两个集合的交集,即this = this ∩ coll;
1 public class Demo05 { 2 public static void main(String[] args){ 3 Collection coll = new ArrayList(); 4 coll.add(1); 5 coll.add(2); 6 coll.add(3); 7 coll.add(4); 8 coll.add(5); 9 System.out.println("coll集合元素的个数:" + coll.size());//5 10 11 Collection other = new ArrayList(); 12 other.add(1); 13 other.add(2); 14 other.add(8); 15 16 coll.retainAll(other);//保留交集 17 System.out.println(coll); 18 System.out.println("coll集合元素的个数:" + coll.size());//2 19 } 20 }
运行结果
1 coll集合元素的个数:5 2 [1, 2] 3 coll集合元素的个数:2
6.转为数组
- Object[] toArray():返回包含当前集合中所有元素的数组
1 public class Demo05 { 2 public static void main(String[] args){ 3 Collection coll = new ArrayList(); 4 coll.add("小明"); 5 coll.add("小红"); 6 coll.add("小刚"); 7 System.out.println(coll); 8 9 Object[] arr = coll.toArray(); 10 for(int i=0; i<arr.length; i++){ 11 System.out.print(arr[i] + " "); 12 } 13 } 14 }
运行结果:
[小明, 小红, 小刚]
小明 小红 小刚