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. 在GNOME开发人员的努力下,Pango 1.44即将问世

    早在5月份,Red Hat的Matthias Clasen共同制定了计划,在近年来相当陈旧的情况下,对Pango布局引擎库进行了一些改进. 这项工作将随着Pango1.44版本的发布而实现,看起来它很 ...

  2. SCHema学习

    <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http:/ ...

  3. R 正态性检验:正态概率图

    检验模型是否满足正态性假设的方法: 1.正态概率图 这是我编写的画正态概率图的函数: #绘制正态概率图 plot_ZP = function(ti) #输入外部学生化残差 { n = length(t ...

  4. Day4 - M - Roads in Berland CodeForces - 25C

    There are n cities numbered from 1 to n in Berland. Some of them are connected by two-way roads. Eac ...

  5. 065、Java面向对象之定义一个Book类,在主类中使用Book类

    01.代码如下: package TIANPAN; class Book { // 定义一个新的类 String title; // 书的名字 double price; // 书的价格 public ...

  6. 注解方式实例化Java类

    context:component-scan标签: Sprng容器通过context:component-scan标签扫描其base-package标签属性值指定的包及其子包内的所有的类并实例化被@C ...

  7. NIO 与 零拷贝

    零拷贝介绍 零拷贝是网络编程的关键, 很多性能优化都需要零拷贝. 在 Java程序中, 常用的零拷贝方式有m(memory)map[内存映射] 和 sendFile.它们在OS中又是怎样的设计? NI ...

  8. java格式化代码(java格式化代码工具类)

    下别人的原来链接..... 支持效果不好要想格式化好需要解析语法树   7个积分我这里免费下      转自 https://download.csdn.net/download/jkl012789/ ...

  9. 前端学习(22)~css问题讲解

    你是如何理解 HTML 语义化的? 语义化:指对文本内容的结构化(内容语义化),选择合乎语义的标签(代码语义化). 举例:段落用 p,边栏用 aside,主要内容用 main 标签. 好处: 便于开发 ...

  10. 099-PHP二维数组的元素输出二

    <?php $stu=array(array(76,87,68), array(65,89,95), array(90,80,66), array(90,95,65)); //定义一个二维数组 ...