全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

List集合使用详解

发布时间:2023-03-02 16:38:00
发布人:wjy

  我们知道,List是Java编程中经常使用的集合之一,但List到底有哪些不为人知的地方,List为什么被使用的这么多?今天千锋就为大家分析一下关于List的那点事儿。

  List本身其实是一个接口,继承自Collection接口,所以List存储元素的特点是单元素,区别于Map(双元素集合),JDK8为List接口提供了10个实现类,供开发人员使用。为什么提供那么多的实现类呢?因为在实际开发场景下需要根据业务的不同选择不同的实现类来使用,这就要求大家对实现类的特点都要加以掌握,才能再实际的开发中运用自如。有些菜鸟一个ArrayList走天下^!^。大家可以先看看下面我总结的List子类图:

List集合使用详解1

  接下来我会给大家对以上几个类进行简要介绍。

List集合使用详解2

  从源码中可以看到,这个类是抽象类无法进行实例化。该类实现了迭代器和列表迭代器,同时也实现了get(int),set(int, E),add(int, E),remove(int)方法,如果子类有更好的处理方式可以覆盖这些方法。

List集合使用详解3

  此抽象类实现由连续访问数据存储所需的工作(如链表),它实现了对列表的列表迭代器顶部的随机访问方法get(int),set(int index,E element),add(int index,E element)和remove(int index)

List集合使用详解4

  此类为主要实现类之一,实际开发过程中经常使用。主要完成可调整大小的集合(基于数组实现),每个ArrayList实例都有一个容量。容量是用于存储列表中的元素的数组大小。请注意此实现线程不安全。

List集合使用详解5

  此类是ArryList的子类,是对ArrayList的扩展。表示MBean属性值的列表(MBean参见jdk官方文档)

List集合使用详解6

  此类是一个线程安全的变体ArrayList,其中所有可变操作(add,set,remove等等)通过对底层数组的最新副本实现。在多线程情况下使用较频繁

List集合使用详解7

  此类基于双向链表实现List接口。实现所有可选列表操作,并允许所有元素(包括null)。请注意,此实现不同步。

List集合使用详解8

  RoleList表示角色列表(Role对象)。在创建关系时用作参数,并且尝试在关系中设置多个角色。

List集合使用详解9

  RoleUnresolvedList表示RoleUnresolved对象的列表,表示由于在尝试访问(读取或写入)角色时遇到问题,不会从关系中检索到角色。

List集合使用详解10

  Stack类代表最先进先出(LIFO)堆栈的对象。 它扩展了类别Vector与五个操作,允许一个向量被视为堆栈。 设置在通常的push和pop操作,以及作为一种方法来peek在堆栈,以测试堆栈是否为empty的方法,以及向search在栈中的项目的方法在顶部项目和发现多远它是从顶部。

  当首次创建堆栈时,它不包含任何项目

List集合使用详解11

  此类实现了可扩展的对象数组。 像数组一样,它包含可以使用整数索引访问的组件。 但是, Vector的大小可以根据需要增长或缩小,以适应在创建之后添加和删除项目。因操作速度较慢,故基本不适用,但却是线程安全,建议使用ArrayList代替Vector。

  好了,以上就是千锋给大家分析的List基本内容,现在你对List的认识是不是更深刻了呢?

 

相关文章

python写入json文件?

python写入json文件?

2023-11-02
vscode设置tab为4个空格?

vscode设置tab为4个空格?

2023-11-02
更新pycharm?

更新pycharm?

2023-11-02
anaconda每次打开都要安装?

anaconda每次打开都要安装?

2023-11-02

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取