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. 手机连接jmeter录制脚本测试

    1.准备条件 电脑安装好jmeter,准备好一个手机 注意: 电脑和手机连接的网络要一致 手机设置代理协议前要先进入想要抓取的网站: http://39.107.96.138:3000/ 2.jmet ...

  2. Linux-lsxxx

    Linux-lsxxx ls list directory contents 列出文件及目录 lsattr List file attributes on a Linux second extende ...

  3. 从零开始学C++(1 变量和基本类型)

    接下来的几篇文章介绍C++的基础知识点. C++是一种静态数据类型语言,它的类型检查发生在编译时.因此,编译器必须知道程序中每一个变量对应的数据类型. 数据类型是程序的基础:它告诉我们数据的意义以及我 ...

  4. UVA - 122 Trees on the level (二叉树的层次遍历)

    题意:给定结点值和从根结点到该结点的路径,若根到某个叶结点路径上有的结点输入中未给出或给出超过一次,则not complete,否则层次遍历输出所有结点. 分析:先建树,建树的过程中,沿途结点都申请了 ...

  5. 【linux】linux系统安全设置

    1.下载安装安全软件 2.取消Telnet登录采用SSH方式并更改ssh服务端远程登录的配置 1)Telnet登录协议是明文不加密不安全,所以采用更安全的SSH协议. 2)更改ssh服务端远程登录相关 ...

  6. R 读取excel的方法

    1.加载 readxl 包,利用 reade_excel() 函数 install.packages("readxl") library(readxl) data = read_e ...

  7. 八十六、SAP中ALV的事件查看

    一.事务代码SE37,点击运行 二.再点击执行 三.我们可以看到有17个事件,点击17前面的表格图标 四.来到详细的事件中 五.我们回到SE37,点击显示 六.查看参数,为一个内表 七.我们点击SLI ...

  8. 五十七、SAP中关于信息框的总结

    一.事务代码SE91 二.里面有我们创建过的一个消息类Z_TIANPAN_201907_MSG 三.这个消息类中有2个内容 四.我们的代码如下 五.S001效果 六.E001和W001效果 七.I00 ...

  9. T_SQL 将一列多行数据合并为一行

    SQL Server在进行数据迁移和报表处理的时候会遇到将一列多行数据拼接为一个字符串的情况,为了处理这个问题,在网上找了一些相关的资料,提供两种方法,供遇到类似问题的朋友们参考,也借此加深自己的印象 ...

  10. unicode字符等价探究

    Demobaidu.com(\uff41)能跳转到baidu.combаidu.com(\u0430)不能跳转到baidu.com,被认为成一个其他域名 等价原因两个不同编码的Unicode字符之间可 ...