完整教程:how2j
备忘
ArrayList存放对象 容器的容量”capacity”会随着对象的增加,自动增长 只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。
1
2
3
4//容器类ArrayList,用于存放对象
ArrayList heros = new ArrayList();//创建容器类对象
heros.add( new Hero("盖伦"));//添加新英雄
System.out.println(heros.size());//容器类大小List :ArrayList实现了接口List常见的写法会把引用声明为接口List类型注意:是java.util.List,而不是java.awt.List 因为ArrayList实现了List接口,所以List接口的方法ArrayList都实现了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19List heros = new ArrayList();//创建容器类对象
heros.add( new Hero("盖伦"));//添加新英雄
System.out.println(heros.size());//容器类大小
```
- 泛型 Generic:不指定泛型的容器,可以存放任何类型的元素 指定了泛型的容器,只能存放指定类型的元素以及其子类
```java
//声明容器的时候,就指定了这种容器,只能放Hero,放其他的就会出错
List<Hero> genericheros = new ArrayList<Hero>();
genericheros.add(new Hero("盖伦"));
//如果不是Hero类型,根本就放不进去
//genericheros.add(new Item("冰杖"));
//除此之外,还能存放Hero的子类
genericheros.add(new APHero());
//并且在取出数据的时候,不需要再进行转型了,因为里面肯定是放的Hero或者其子类
Hero h = genericheros.get(0);泛型的简写
List<Hero> genericheros = new ArrayList<Hero>(); List<Hero> genericheros2 = new ArrayList<>();
迭代器遍历 havaNext
Iterator<Hero> it= heros.iterator(); //从最开始的位置判断"下一个"位置是否有数据 //如果有就通过next取出来,并且把指针向下移动 //直达"下一个"位置没有数据 while(it.hasNext()){ Hero h = it.next(); System.out.println(h); }