千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > List集合使用详解

List集合使用详解

来源:千锋教育
发布人:wjy
时间: 2023-03-02 16:38:00 1677746280

  我们知道,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的认识是不是更深刻了呢?

 

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT