1. 程式人生 > >集合框架--ArrayList集合儲存自定義物件

集合框架--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());
		}
	}
}
執行結果: