Java自学-集合框架 与数组的区别

时间:2022-11-20 22:32:55

Java集合框架与数组的区别

示例 1 : 使用数组的局限性

如果要存放多个对象,可以使用数组,但是数组有局限性

比如 声明长度是10的数组

不用的数组就浪费了

超过10的个数,又放不下

//TestCollection.java
package collection; import charactor.Hero; public class TestCollection {
public static void main(String[] args) {
//数组的局限性
Hero heros[] = new Hero[10];
//声明长度是10的数组
//不用的数组就浪费了
//超过10的个数,又放不下
heros[0] = new Hero("盖伦");
//放不下要报错
heros[20] = new Hero("提莫"); } } // 重写了toString的Hero
package charactor; 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 : ArrayList存放对象

为了解决数组的局限性,引入容器类的概念。 最常见的容器类就是

ArrayList

容器的容量"capacity"会随着对象的增加,自动增长

只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。

package collection;

import java.util.ArrayList;

import charactor.Hero;

public class TestCollection {
@SuppressWarnings("rawtypes")
public static void main(String[] args) {
//容器类ArrayList,用于存放对象
ArrayList heros = new ArrayList();
heros.add( new Hero("盖伦"));
System.out.println(heros.size()); //容器的容量"capacity"会随着对象的增加,自动增长
//只需要不断往容器里增加英雄即可,不用担心会出现数组的边界问题。
heros.add( new Hero("提莫"));
System.out.println(heros.size()); } }