美文网首页
5.3泛型数组列表

5.3泛型数组列表

作者: 十六只猴子王 | 来源:发表于2019-03-20 09:37 被阅读0次

    使用ArrayList类,它在添加或删除元素时,具有自动调节数组容量的功能,而不需要为此编写任何代码,为了指定数组列表保存的元素对象类型,需要用一对尖括号将类名括起来加在后面

    • 声明和构造一个保存Cat对象的数组列表
    ArrayList<Cat> c = new ArrayList<>();
    

    如果已经清楚或能够估计出数组可能存储的元素数量,就可以在填充数组之前调用ensureCapacity方法:

    c.ensureCapacity(100);//这个方法调用将分配一个包含100个对象的内部数组
    
    ArrayList<Cat> c = new ArrayList<>(100);//可以把初始容量传递给ArrayList构造器
    

    如果为数组分配100个元素的存储空间,数组就有100个空位置可以使用。而容量为100个元素的数组列表只是拥有保存100个元素的潜力。

    1. 添加元素add
     c.add(new Cat("n1", "color1"));
       c.add(new Cat("n2", "color2"));
    

    向后移动元素,以便插入元素。示例:

        c.add(0, new Cat("c", "yellow"));
    
    1. set方法
      set方法设置数组列表指定位置的元素,这个操作将覆盖这个位置的原有内容。
    2. remove
      删除一个元素,并将后面的元素向前移动。
    3. get
      获取指定位置的元素值。
    4. trimToSize
      将数组列表的存储容量削减到当前尺寸。
    import java.util.ArrayList;
     
    public class Test1 {
        public static void main(String[] args){
            ArrayList<Cat> c = new ArrayList<>();
            c.ensureCapacity(100);
            System.out.println(c.size());
            c.add(new Cat("n1", "color1"));
            c.add(new Cat("n2", "color2"));
            c.set(1, new Cat("nx", "cx"));
            c.add(0, new Cat("c", "yellow"));
            for (Cat cat : c) {
                System.out.println(cat.name + " " + cat.color);
            }
            System.out.println(c.size());
            Cat d = c.get(0);
            System.out.println(d.name);
        }
    }
    class Cat{
        String name;
        String color;
        Cat(String name, String color){
            this.name = name;
            this.color = color;
        }
    }
    

    0
    c yellow
    n1 color1
    nx cx
    3
    c

    • 使用Arraylist注意如下变化
      使用add将任意多的元素添加到数组中
      使用size()替代length计算元素的数目
      使用a.get()代替a[i]访问元素
    • 适用场景
      如果想要保存一些在整个程序运行期间都会存在而且不变的数据,我们可以将它们放进一个全局数组里,但是如果我们单纯只是想要以数组的形式保存数据,而不对数据进行增加等操作,只是方便我们进行查找的话,那么,我们就选择ArrayList。而且还有一个地方是必须知道的,就是如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用ArrayList就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦,那么,我们可以考虑选择LinkedList。

    相关文章

      网友评论

          本文标题:5.3泛型数组列表

          本文链接:https://www.haomeiwen.com/subject/vnsamqtx.html