//首先引入 util包 几乎所有的集合类和接口都定义在这个包里面
import java.util.ArrayList;
class Test{
public static void main(String args[]){
//创建一个ArrayList对象
ArrayList al = new ArrayList();
//显示al的大小 可以这样理解这个问题
//在我们内存空间(在栈区)只是分配了一个地址 没有东西在里面
System.out.println("al的大小是"+al.size());
//向al当中加入的数据都是Object类型的(因为java中所有的类型都是从Object中继承出来的 于是我们可以放置任何一种类型进去)
Clerk clerk1 = new Clerk("宋江",50,"男");
al.add(clerk1);//将指定的元素加载到列表尾部 其实存放的是clerk1 这个对象的地址 其实就是链表
System.out.println("al的大小是"+al.size());
Clerk clerk2 = new Clerk("吴用",45,"男");
al.add(clerk2);
System.out.println("al的大小是"+al.size());
//访问al当中的数据
//访问第一个人 第一个对象 类型不匹配 由于al里面是Object类型的 如果将一个子类交给父类的话是能够自动
//转换的 但是如果将一个父类交给子类的话就是不行的 所以我们需要强制转换
Clerk temp = (Clerk)al.get(0);
System.out.print(temp.getName()+" ");
System.out.print(temp.getAge()+" ");
System.out.println(temp.getSex());
// 如果index越界的话 就会报出indexOutofBoundException
for(int i=0;i<al.size();i++)
{
Clerk temp1 = (Clerk)al.get(i);
System.out.print(temp1.getName()+" ");
System.out.print(temp1.getAge()+" ");
System.out.println(temp1.getSex());
}
//删除对象 不必按照顺序删除 就是跟链表是一致的。
al.remove(0);
for(int i=0;i<al.size();i++)
{
Clerk temp1 = (Clerk)al.get(i);
System.out.print(temp1.getName()+" ");
System.out.print(temp1.getAge()+" ");
System.out.println(temp1.getSex());
}
}
}
class Clerk{
private String name;
private int age;
private String sex;
public Clerk(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return (this.name);
}
public int getAge() {
return (this.age);
}
public String getSex() {
return (this.sex);
}
}
java集合类之ArrayList
最新推荐文章于 2024-06-12 14:33:24 发布