java中,最常用的就是数组这种数据结构,但是,如果需要保存的数据的长度不确定,或者数据与数据之间有一定的关联,那么,就需要使用java中的集合框架了。
集合中,存放的内容都是对象而不是基本的数据类型。在没有规定泛型的前提下,所有对象都被当做Object类型存放进去。
java中的集合框架大体如下图
:
以后的学习中会逐一详解,这里不赘述,直接进入Collection接口的学习。
Collection中,可以进行增,删,查操作。需要注意的是,因为Collection是一个接口,所以在实例化的时候,要用其具体的实现类来进行实例化。
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
public class CollectionDemo {
public static void main(String[] args){
Collection c = new ArrayList();
c.add(1);
c.add("hello");
System.out.println(c);
System.out.println("c的容量:"+c.size());
c.remove(1);
System.out.println(c);
System.out.println("删除1以后c的容量:"+c.size());
Collection person = new HashSet();
person.add("张三");
person.add("李四");
c.addAll(person);
System.out.println(c);
System.out.println("添加person集合以后的容量c的容量:"+c.size());
c.removeAll(person);
System.out.println(c);
System.out.println("删除person集合以后的容量c的容量:"+c.size());
c.clear();
System.out.println("清除所有c中内容以后:"+c);
}
}
执行结果为:
如果要遍历集合中的元素,可以使用foreach或者是Iterator接口。
public class TravelCollectionDemo {
public static void main(String[] args){
Collection c = new ArrayList();
c.add("zhang");
c.add("wang");
c.add("li");
c.add("zhao");
//第一章遍历方式,使用Iteraotr接口进行遍历
//remove方法删除集合里上一次next方法返回的元素
Iterator it = c.iterator();
System.out.println("Iterator进行的遍历:");
while(it.hasNext()){
String str = (String) it.next();
if(str.equals("li")){
it.remove();
}
}
c.add("li");
System.out.println("利用Foreach进行遍历");
//使用foreach进行遍历
for(Object obj : c){
String str = (String) obj;
System.out.println(str);
}
}
}
特别需要强调的一点是:在使用Iterator进行遍历的时候,这个时候集合是不能改变的,不能增加或者删除,否则将发生ConcurrentModificationException。