首页 > 代码库 > java中级——集合框架【1】

java中级——集合框架【1】

集合框架----ArrayList

引子:我们先来看看传统数组的用法

  1. 写一个Hero对象类

    package cn.jse.t1;

    public class Hero {

    public String name;

    public float hp;

    public int damage;

     

    public Hero(){}

    //增加一个初始化name的构造方法

    public Hero(String name){

    this.name=name;

    }

    //重写一个toString 方法

    public String toString(){

    return name;

    }

    }

  2. 写一个测试类

    package cn.jse.t1;

    public class TestCollection {

     

    public static void main(String[] args) {

    //数组的局限性

    Hero hero[] = new Hero[10];

    //分析:声明了长度为10的数组,如果不用完就是浪费内存,超过了10个又放不下

    hero[0] = new Hero("ADC");

    hero[11]= new Hero("Mid");    //这里超过了10个就会报错   

     

    }

    }

  3. 为了解决这种的尴尬局面,我们可以使用容器类ArrayList我们增加一些代码在测试类里面。

    package cn.jse.t1;

     

    import java.util.ArrayList;

     

    public class TestCollection {

     

    public static void main(String[] args) {

     

    ...

     

    //为了解决数组的局限性,引入了容器类的概念

    ArrayList heros=new ArrayList();

    heros.add(new Hero("中单"));

    //输出一下当前的容器的容量

    System.out.println(heros.size());

     

    heros.add(new Hero("辅助"));

    System.out.println(heros.size());

     

    //结果发现容器的容量是随着对象的增加而增加的,就不用考虑数组的边界问题了

    }

    }

     

    我们可以看下控制台的输出:

    1

    2

     

  4. 我们可以看看ArrayList的常用方法:

     技术分享

     

    使用方法:我们还是在测试类中增加新的代码(addcontains

    package cn.jse.t1;

     

    import java.util.ArrayList;

     

    public class TestCollection {

     

    public static void main(String[] args) {

     

    ...

     

    //接下来我们可以看看ArrayList的常用方法

    ArrayList<Hero> heros2=new ArrayList<Hero>();

    //把五个对象放入ArrayList中

    for(int i=0;i<5;i++){

    heros2.add(new Hero("hero " + i));

    }

     System.out.println(heros);

    // 在指定位置增加对象 比如在下标3位置add一个superhero

         Hero superHero = new Hero("Super hero");

         heros2.add(3, superHero);

         //将数组中所有的hero输出

         System.out.println(heros2.toString());

         

         //通过方法contains 判断一个对象是否在容器中

         System.out.println("那么这个Hero6在不在这里面呢?  回答是:"+heros2.contains(new Hero("hero6")));

         System.out.println("那么这个superHero在不在这里面呢?  回答是:"+heros2.contains(superHero));

         

    }

    }

     

    控制台输出:

    [中单, 辅助]   //这里是因为我们之前有加了2hero

    [hero 0, hero 1, hero 2, Super hero, hero 3, hero 4]

    那么这个Hero6在不在这里面呢?  回答是:false

    那么这个superHero在不在这里面呢?  回答是:true

     

    其他的方法就不一一列举了,有兴趣的同学可以看看相关的知识点

java中级——集合框架【1】