首页 > 代码库 > java中级——集合框架【1】
java中级——集合框架【1】
集合框架----ArrayList
引子:我们先来看看传统数组的用法
-
写一个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;
}
}
-
写一个测试类
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个就会报错
}
}
-
为了解决这种的尴尬局面,我们可以使用容器类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
-
我们可以看看ArrayList的常用方法:
使用方法:我们还是在测试类中增加新的代码(add、contains)
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));
}
}
控制台输出:
[中单, 辅助] //这里是因为我们之前有加了2个hero
[hero 0, hero 1, hero 2, Super hero, hero 3, hero 4]
那么这个Hero6在不在这里面呢? 回答是:false
那么这个superHero在不在这里面呢? 回答是:true
其他的方法就不一一列举了,有兴趣的同学可以看看相关的知识点
java中级——集合框架【1】