list是一个接口,实现类:Arraylist,Vector,Linkedlist

list接口(有序):

常用方法
排除Collection中具有的之外的
添加功能
void add(int index, E element):在指定位置添加元素
boolean addAll(int index, Collection<? extends E> c):在指定位置添加一组元素
判断功能
int indexOf(Object o):查找某个元素所在位置
int lastIndexOf(Object o):元素最后一次出现位置。
获取功能
E get(int index):根据下标获取元素
int size():返回集合的元素个数
List<E> subList(int fromIndex, int toIndex):根据下标获取指定返回内的元素,返回一个新的集合
修改功能
E set(int index, E element):修改某个位置的元素,返回被修改元素。
E remove(int index):根据索引删除元素,返回被删除的元素。
特定迭代器
ListIterator<E> listIterator():获取列表迭代器,开始位置0
ListIterator<E> listIterator(int index):获取从指定位置开始的迭代器
 
ListIterator
List集合特有的迭代器,在Iterator的基础上进行了增强,可以获取上一个元素,提供了以下方法:
boolean hasPrevious():是否有上一个元素
E previous():获取上一个元素
void add(E e):添加元素
void set(E e):用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)
void remove():从列表中移除由 next 或 previous 返回的最后一个元素(可选操作),而Iterator中只能替删除next()元素
int nextIndex():返回对 next 的后续调用所返回元素的索引。
int previousIndex():返回对 previous 的后续调用所返回元素的索引。
 
List的遍历
方法一:配合size()函数和get(index)函数使用for循环遍历
方法二:使用iterator迭代器遍历
方法三:使用ListIterator遍历。
 
ArrayList:
特点:
  1:大小可变
  2:底层实现是数组,默认容量为10
  3:扩容方式:原始容量+原始容量的一半
  4:new ArrayList<>()的时候容量为0,第一次添加(add)之后容量为默认容量,最开始的时候存放数据的数组为{ }
  5:线程不安全,读写块,插入或者删除效率低
  6:迭代器是快速失败的
Vector:
特点:
  1:大小可变
  2:底层实现是数组,默认容量为10
  3:扩容方式:原始容量的2倍(如果使用public Vector(int initialCapacity, int capacityIncrement)来构造Vector,扩容方式为当前容量+capacityIncrement。new Vector<>()的时候就变为默认容量)
  4:线程安全,读写快,插入,删除效率低
  5:由于效率低下,很少被使用,如果需要使用线程安全的数组,可以使用Vector来代替
  6:迭代器是快速失败的
LinkedList:
特点:
  1:底层是双向链表
  2:线程不安全
  3:查询效率低,随机插入和删除快

Java集合--list接口的更多相关文章

  1. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  2. java集合类型接口和实现类个人总结

    转载:http://blog.csdn.net/qingchunbusanchang/article/details/39576749 java的集合是一个比较综合的概念,相关的知识有很多的博客里面做 ...

  3. JAVA集合--Iterator接口

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     上一篇文章中我在集合元素的遍历中已经有涉及到I ...

  4. JAVA集合--Collection接口

        本文首发于cartoon的博客     转载请注明出处:https://cartoonyu.github.io/cartoon-blog     在概述里面也说过:Collection是jav ...

  5. java集合——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  6. Java集合——Set接口

    1.定义 set中不允许放入重复的元素(元素相同时只取一个),使用equals()方法进行比较.如果返回true,两个对象的HashCode值也应该相等 2.方法 add():添加元素 remove( ...

  7. Java集合——Map接口

    1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V  put(key,value) ...

  8. Java集合——List接口

    1.定义 List是Collection的子接口,元素有序并且可以重复,表示线性表. 2.方法 add(int index,Object e):在指定索引(和数组下标类似,为0,1,2....)放入元 ...

  9. Java 集合-List接口和三个子类实现

    List List:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素.与 ...

  10. Java 集合-Collection接口和迭代器的实现

    2017-10-30 00:30:48 Collection接口 Collection 层次结构 中的根接口.Collection 表示一组对象,这些对象也称为 collection 的元素.一些 c ...

随机推荐

  1. Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can't find referenced class问题的解决方案

    原文地址:http://blog.csdn.net/u_xtian/article/details/7495023 这个看似简单的问题困扰了我好久了,我已经google了很多相关的信息了,但是在我看来 ...

  2. P 1041 考试座位号

    P 1041 考试座位号 转跳点:

  3. redmine处理规范

         开发: 1.       研发人员负责更新到的状态共有三个:  “进行中”. ”已解决”. ”需要反馈”. 2.       在开始修复bug的时候,把状态更新为”进行中”,把title更新 ...

  4. CSS - flex 垂直水平居中

    display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */

  5. 配置多个数据源datasource

    https://www.jianshu.com/p/34730e595a8c @Primary.@Qualifire.@Autowired.@Resource https://blog.csdn.ne ...

  6. R apply()函数

    创建一个列表变量,它的第一个元素包含所有从0到9的平方数,第二个元素为10到19之内的所有平方数,依此类推,最后一个元素为90到99之内的平方数.没有平方数的元素也应该被包含在内! 学习网友的解题思路 ...

  7. [LeetCode] 932. Beautiful Array 漂亮数组

    For some fixed N, an array A is beautiful if it is a permutation of the integers 1, 2, ..., N, such ...

  8. 利用QRCoder生成二维码

    1.项目添加QRCoder.dll 和System.Drawing.dll的引用 2.创建二维码公共处理类(QRCoderHelper.cs) /// <summary> /// 二维码公 ...

  9. 球队“食物链”(DFS+剪枝)

    某国的足球联赛中有N支参赛球队,编号从1至N.联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场. 联赛战罢,结果已经尘埃落定.此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链 ...

  10. 二、【重点】环境安装:通过淘宝 cnpm 快速安装使用 React,生成项目,运行项目、安装项目

    1.cnpm代替npm 如果你的系统还不支持 Node.js 及 NPM 可以参考我们的 Node.js 教程. 我们建议在 React 中使用 CommonJS 模块系统,比如 browserify ...