天天看點

Java自學-集合架構 與數組的差別

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());
         
    }
     
}