List有序集合

List

有序集合,可以精确控制列表中每个元素的插入位置。通过整数索引获取列表中的元素。List允许出现重复的值 , 并可以精确控制列表中每个元素的插入位置,通过整数索引获取列表中的元素。

方法名 说明
add(E e) 增加单个数据
addAll(Collection<? extends E> c) 将一个 Collection 集合的数据添加到现在的集合中
remove(Object o) 删除指定的元素
contains(Object o) 判断集合是否包含指定的元素
size() 得到集合的数据总数
isEmpty() 判断集合是否有数据
get(int index) 通过索引获取对应的数据元素
set(int index, E element) 通过索引和新的元素替换原有内容
clear() 清空数据
toArray() 将List转为对象数组

ArrayList

ArrayList 是List 接口的大小可变数组的实现。实现了所有可选列表操作, 并允许包括null 在内的所有元素。除了实现List 接口外, 此类还提供一些方法来操作内部用来存储列表的数组的大小( 此类大致上等同于 vector 类, 但 vector 是同步的) 。

ArrayList 的底层是使用数组实现的,看下面的图

图1.png

可以看到,数组中的每一个元素,都存储在内存单元中,并且元素之间紧密排列,既不能打乱元素的存储顺序,也不能跳过某个存储单元进行存储。

ArrayList 底层既然是使用数组实现,那么特点就和数组一致:查询速度快,增删速度慢

每个ArrayList 实例都有一个容量。该容量是指用来存储列表元素的数组的大小, 它总是至少等于列表的大小。随着向Array L ist 中小断添加元素, 其容量也自动增长。并未指定增长策略的细节,因为这不只是添加元素会带来分摊固定时间开销那样简单。我们可以使用默认构造函数创建容量为 10 的列表, 也可以初始化指定容量大小。

ArrayList 指定初始容量大小的构造器方法

public ArrayList(int initialCapacity) {

    if (initialCapacity > 0) {
        this.elementData = new Object[initialCapacity];
    } else if (initialCapacity == 0) {
        this.elementData = EMPTY_ELEMENTDATA;
    } else {
        throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity);
    }
}

常用的操作

public static void main(String[] args) {

    ArrayList<Integer> list = new ArrayList<>();

    //  添加数据
    list.add(123);
    list.add(346);

    //  替换数据
    list.set(1, 777);

    //  将list中的所有数据放到 list2 中
    List<Integer> list2 = new ArrayList<>();
    list2.addAll( list );

    //  循环list2中所有的数据
    for (Integer integer : list2) {

        System.out.println( integer );

        //  删除循环出的对象
        list2.remove(integer);
    }

    //  list 集合是否有数据
    if( !list.isEmpty() ) {

        System.out.println("list.size = "+ list.size());

        //  清空 list
        list.clear();
    }

    //  在清空list后,再看list现在有多少数据
    System.out.println("list.size = "+ list.size());
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容