java集合类之ArrayList

来源:互联网 发布:陈道明 传承者 知乎 编辑:程序博客网 时间:2024/04/29 18:45
//首先引入 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越界的话  就会报出indexOutofBoundExceptionfor(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); }}