动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

简要解析ArrayList<E>类

06-01 17:27 810浏览
举报 T字号
  • 大字
  • 中字
  • 小字

ArrayList<E>是一个可动态调整大小的数组,允许null类型的元素。我们知道,Java中的数组大小在初始化时就必须确定下来,而且一旦确定就不能改变,这会使得在很多场景下不够灵活。ArrayList<E>很好地帮我们解决了这个问题,当我们需要一个能根据包含元素的多少来动态收缩伸张的数组时,那么ArrayList<E>正是我们所需要的。

我们先来看看这个类的常用方法:

1.向集合中添加元素:list.add(需要添加的元素)

2.读取集合中的元素:list.get(int index),括号中为元素编号索引值,和数组相同,从0开始

3.删除集合中的元素:list.remove(int index)

4.获得集合中的元素个数:list.size()

public class Demo03ArrayListMethod {
    public static void main(String[] args) {
        ArrayList<String> list =new ArrayList<>();
        boolean success = list.add("成龙");
        System.out.println("添加是否成功"+success);
        System.out.println(list);

        list.add("姚明");
        list.add("刘德华");
        list.add("黎明");
        list.add("郭富城");

        System.out.println(list);

        //下标从0开始
        String name= list.get(3);
        System.out.println("索引3号位置是:"+name);
        int size1= list.size();
        System.out.println(size1);
        System.out.println("===============");
        String whoRemoved=list.remove(3);
        System.out.println("被移除的是:"+whoRemoved);
        System.out.println(list);
        int size2= list.size();
        System.out.println(size2);

        for(int i=0;i< list.size();i++)//一种遍历方式
        {
            System.out.println(list.get(i));
        }

    }
}

注意:对于ArrayList集合来说,直接打印得到的不是地址值,而是集合的内容,这一点和数组不同。

当我们插入了比较多的元素,导致ArrayList快要装满时,它会自动增长容量。而自动增长容量是通过创建一个新的容量更大的ArrayList对象,再把原来的所有元素复制过去实现的。若要想避免这种开销,在知道大概会容纳多少数据时,我们可以在构造时指定好它的大小以尽量避免它自动增长的发生;我们也可以调用ensureCapacity方法来增加ArrayList对象的容量到我们指定的大小。ArrayList有以下三个构造器:

ArrayList()
ArrayList(Collection<? extends E> c)
ArrayList(int initialCapacity)

我们可以把ArrayList<E>看成是一个类,也可以看成是一个数组,根据不同的情况选择不同的用法,我们可以到动力节点在线了解更多的相关知识。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵124
程序员代码小兵124

99篇文章贡献336699字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

提枪策马乘胜追击04-21 20:01

Spring常见面试题

代码小兵92504-17 16:07

Java零基础实战项目——五子棋

代码小兵98804-25 13:57

Java string类详解

杨晶珍05-11 14:54

6道经典算法面试题

杨晶珍05-12 16:39

发评论

举报

0/150

取消