以Collection接口下的ArrayList为例:
import java.util.ArrayList;
/*
* 1、add方法的参数类型是Object,以便于接收任意类型的对象。
* 2、集合中存储的都是对象的引用(地址)。
* */
public class CollectionDemo {
public static void main(String[] args) {
//创建一个集合容器,使用Collection接口的子类,ArrayList
ArrayList arr=new ArrayList();
//添加元素
arr.add("1");
arr.add("2");
arr.add("3");
arr.add("4");
arr.add("5");
//打印原集合
sop(arr);
//2、获取个数,集合长度
sop("size:"+arr.size());
//3、删除元素
arr.remove("5");
//arr.clear();//清空集合
//4、判断元素
sop("3是否存在:"+arr.contains("3"));
sop("集合是否为空:"+arr.isEmpty());
//打印改变后集合
sop(arr);
}
public static void sop(Object obj){
System.out.println(obj);
}
}
运行结果为:
[1, 2, 3, 4, 5]
size:5
3是否存在:true
集合是否为空:false
[1, 2, 3, 4]
方法retainAll:可看做是求交集
import java.util.ArrayList; /* * 1、add方法的参数类型是Object,以便于接收任意类型的对象。 * 2、集合中存储的都是对象的引用(地址)。 * */ public class CollectionDemo { public static void main(String[] args) { method_2(); } public static void method_2(){ ArrayList arr1=new ArrayList(); arr1.add("1"); arr1.add("2"); arr1.add("3"); ArrayList arr2=new ArrayList(); arr2.add("2"); arr2.add("3"); arr2.add("4"); arr1.retainAll(arr2);//取交集,arr1中只会保留arr2中相同的元素。 sop("arr1:"+arr1); sop("arr2:"+arr2); } public static void sop(Object obj){ System.out.println(obj); } }
运行结果为:
arr1:[2, 3]
arr2:[2, 3, 4]
什么是迭代器?
其实就是集合的取出元素的方式。
就把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内容的元素。那么取出方式就被定义成了内部类。而每一个容器的数据结构不同,所以取出的动作细节也不一样。但是都有共性内容判断和取出。那么可以将共性的东西抽取。
那么这些内部类都符合一个规则。该规则是Iterator。
如何获取集合的取出对象呢?通过对外提供的方法:iterator();