.集合是干嘛的
集合和数组一样,都是用来储存数据的
1.集合的构架
1.Collection
Collection是一个接口,不能被实例化对象。但是Java封装了实现类。咱们可以借助于多态的形式来实例化出来父类引用【重点】
Collection接口下面的方法,子类或者子接口能不能使用?可以的
增:
boolean add(E e);添加一个数据到结合中
boolean addAll(Collection<? extends E> c);将一个集合数据添加到另外一个集合中
Collection<? extends E>:元素 是E本类或者继承的E,才能添加到另外一个集合中
删:
boolean remove(Object obj); 删出指定的元素
boolean removeAll(Collection<? extends E> c); 删除的是交集
void clear();清空
查:
int size(); 查看集合中元素的个数
Object[ ] toArray(); 将集合转为Object类型数组
boolean contains(Object obj); 集合中包含这个元素 如果包含返回true
boolean containsAll(Collection<? extends E> c); 一个集合是否包含另外一个集合
bollean isEmpty(); 判断集合是否为空
package com.qfedu.a_task;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Locale;
public class Demo1 {
public static void main(String[] args) {
Collection<String> collection = new ArrayList();
collection.add("小明");
collection.add("大华");
collection.add("小牛");
collection.add("小然");
System.out.println(collection);
Collection<String> collection1 = new ArrayList<>();
collection1.add("二明");
collection1.add("小张");
collection1.add("小新");
collection1.add("小军");
collection.addAll(collection1);
System.out.println(collection);//[小明, 大华, 小牛, 小然, 二明, 小张, 小新, 小军]
System.out.println(collection.remove("二明"));//true
System.out.println(collection);//[小明, 大华, 小牛, 小然, 小张, 小新, 小军]
Collection<String> collection2 = new ArrayList<>();
collection2.add("小明");
collection2.add("大华");
collection2.add("嘎子");
collection2.add("江子");
collection.removeAll(collection2);
System.out.println(collection);//[小牛, 小然, 小张, 小新, 小军]
Object[] objects = collection.toArray();
System.out.println(objects); //地址
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
System.out.println(collection.contains("大华"));//flase
System.out.println(collection.isEmpty());//flase
}
}
运行结果:
[小明, 大华, 小牛, 小然]
[小明, 大华, 小牛, 小然, 二明, 小张, 小新, 小军]
true
[小明, 大华, 小牛, 小然, 小张, 小新, 小军]
[小牛, 小然, 小张, 小新, 小军]
[Ljava.lang.Object;@1b6d3586
小牛
小然
小张
小新
小军
false
false
2.for循环遍历
*可以将集合转为数组,然后再用for循环遍历
Collection<String> collection2 = new ArrayList<>();
collection2.add("小明");
collection2.add("大华");
collection2.add("嘎子");
collection2.add("江子");
collection.removeAll(collection2);
System.out.println(collection);//[小牛, 小然, 小张, 小新, 小军]
Object[] objects = collection.toArray();
System.out.println(objects); //地址
for (int i = 0; i < objects.length; i++) {
System.out.println(objects[i]);
}
2.2增强for循环
for (集合中元素的数据类型 临时变量 : 集合或者数组){
System.out.println(临时变量);}
for (String s : collection) {
System.out.println(s);
}
运行结果
小牛
小然
小张
小新
小军
2.3迭代器
也是对集合中数据进行遍历
Iterator<String> iterator = collection.iterator();
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);
}
运行结果
小牛
小然
小张
小新
小军