集合框架--ArrayList集合存储自定义对象,框架--arraylist
分享于 点击 22117 次 点评:227
集合框架--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());
}
}
}
运行结果:
相关文章
- 暂无相关文章
用户点评