----------------------
android培训、java培训、期待与您交流! ----------------------
集合就是用来存放一组数据的。可以认为它是一个容器。
集合的体系:
集合中的超类接口:Iterable
Collection接口中两个主要子接口:List 、Set
先来看下实现List接口的ArrayList类:
import java.util.*;
public class ListTest {
public static void main(String[] args) {
List list=new ArrayList();
Person p1=new Person("张三",34);
Person p2=new Person("李四",23);
Person p3=new Person("王五",45);
list.add(p1);
list.add(p1);
list.add(p3);
list.add(p2);
Iterator it=list.iterator();
nextPerson(it);
}
private static void nextPerson(Iterator it) {
while(it.hasNext()){
Person p=(Person)it.next();
System.out.println(p);
}
}
}
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return this.name+"------"+this.age;
}
}
运行结果:
张三------34
张三------34
王五------45
李四------23
ArrayList集合类原理是由可变数组实现的,所以打印的结果是有序的可重复的。
如果要想对集合中的数组查询时,可用ArrayList集合,因为数组都有下标,可以根据下标来查询某个指定位置的数据。如下
public class ListTest {
public static void main(String[] args) {
List list=new ArrayList();
list.add(new Person("张三",23));
list.add(new Person("李四",35));
list.add(new Person("王五",45));
list.add(new Person("张三",23));
Person p=(Person)list.get(1);
System.out.println(p);
}
}
运行结果:李四------35
实现List接口的LinkedList类:这个集合类原理是由链表实现的。先可以通过一个程序来看看效果。
import java.util.*;
public class ListTest {
public static void main(String[] args) {
LinkedList list=new LinkedList();
list.addFirst(new Person("张三",34));
list.addFirst(new Person("李四",23));
list.addLast(new Person("张三",3