集合:
对于集合,首先要明确的是最顶层的接口是Collection接口类,其包含一些基本的方法以便子类调用,不过在定义的时候最好定义好数据类型,以免遍历时还得必须进行向上转型;特别注意的是其没有关于下标的方法。同时为了方便遍历其元素,建立了一个Iterable
类由Collection进行实现其独有的返回迭代器的方法,以便下面的子类进行迭代的实现。
介绍:集合是java中提供的一种容器,可以存储多个数据;集合的长度是可变的,存储的必须是引用数据类型(数组长度是固定的)。
集合的继承实现关系:
特点:list允许出现重复的元素,是有序的,有下标;
而set是不允许的,无序的,没有下标。
Collection类:
Collection<元素类型> 变量名 =new ArrayList<元素类型>();
//只能存储指定的类型(最好采用这种方法)多态
Collection 变量名 = new ArrayList();
//默认类型为Object,即任何类型的元素都可以存储
部分方法:
Collection<Integer> col=new ArrayList<Integer>();
col.add(123);//new Integer("123");
col.add(456);
//判断集合中是否包含此元素
boolean flag=col.contains(123);
System.out.println(flag);
/* //删除元素
boolean f=col.remove(456);
System.out.println(f);
//清空集合中所有元素
col.clear();*/
//向下转型
ArrayList<Integer> arr=(ArrayList<Integer>)col;
for(int i=0;i<arr.size();i++){
System.out.println(arr.get(i));
}
//将集合->数组
Object[] obj=col.toArray();
for(int i=0;i<obj.length;i++){
System.out.println(obj[i]);
}
}
Iterator迭代器:
概述:
Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
常用方法:
hasNext(): 如果仍有元素可以迭代,则返回true;(返回一个boolean值)
next():返回迭代的下一个元素,并把指针向后移动下一位。
不要在迭代的时候替换,改变集合的长度。
循环迭代:
Collection<Integer> col=new ArrayList<Integer>();
col.add(123);
col.add(789);
col.add(456);
//获取迭代器对象;
Iterator<Integer> it=col.iterator();
while(it.hasNext()){
int i=it.next();
if(i==789){
System.out.println(i);
}
}