集合框架--ArrayList集合儲存自定義物件
阿新 • • 發佈:2018-12-25
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()); } } }