集合框架--ArrayList集合存储自定义对象

ArrayList:List接口的实现类。内部是数组数据结构,是不同步的(效率高)。替代了Vector。查询的速度快。

ArrayList集合存储自定义对象:

import java.util.ArrayList;
import java.util.Iterator;

class Person{
	String name;
	int age;

	public Person(){
		super();
	}
	public Person(String name,int age){
		super();
		this.name=name;
		this.age=age;
	}
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name=name;
	}
	public int getAge(){
		return age;
	}
	public void setAge(int age){
		this.age=age;
	}
}

public class ArrayListTest{
	public static void main(String[] args){
		ArrayList al=new ArrayList();  //创建一个集合

		//添加对象
		al.add(new Person("lisi1",21));
		al.add(new Person("lisi2",22));
		al.add(new Person("lisi3",23));
		al.add(new Person("lisi4",24));

		Iterator it=al.iterator();
		while(it.hasNext()){
			System.out.println(it.next());
		}
	}
}
运行结果:



结果打印了全类名和哈希值,并没有打印姓名和年龄属性值。这是因为add接收了一个Object类型对象,使用迭代器取出的对象也是Object,所以要强制转换为Person对象:

import java.util.ArrayList;
import java.util.Iterator;

class Person{
	String name;
	int age;

	public Person(){
		super();
	}
	public Person(String name,int age){
		super();
		this.name=name;
		this.age=age;
	}
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name=name;
	}
	public int getAge(){
		return age;
	}
	public void setAge(int age){
		this.age=age;
	}
}

public class ArrayListTest{
	public static void main(String[] args){
		ArrayList al=new ArrayList();  //创建一个集合

		//添加对象
		al.add(new Person("lisi1",21));
		al.add(new Person("lisi2",22));
		al.add(new Person("lisi3",23));
		al.add(new Person("lisi4",24));

		Iterator it=al.iterator();
		while(it.hasNext()){
			Person p=(Person)it.next(); //Object类型强制转换为子类型Person,才能使用子类型的getName和getAge方法
			System.out.println(p.getName()+"--"+p.getAge());
		}
	}
}
运行结果:

集合框架--ArrayList集合存储自定义对象_第1张图片


你可能感兴趣的:(集合框架--ArrayList集合存储自定义对象)