• 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());
             
        }
         
    }
  • 相关阅读:
    Git 版本更新(Windows下)
    Qt Quick 构建 Android app
    Android Studio更新到3.6.0 Gradle报错No cached version of com.android.tools.build:aapt2:3.2.0-alpha16-4748712 available for of...
    在自定义类中使用setMouseCallBack
    关于Qt 状态机
    C++ 新特性 移动构造函数和移动赋值
    关于Qt MetaObject connectSlotsByName
    Prototype 设计模式在框架中的应用
    关于设计模式
    如何提高Qt工程的编译速度
  • 原文地址:https://www.cnblogs.com/jeddzd/p/11796446.html
Copyright © 2020-2023  润新知