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. Andorid 搭建 Linux服务器(一)

    00.搭建环境 电脑系统:MacOS下Win7虚拟机 手机型号:红米Note5A 手机系统:MIUI10开发版 软件: SuperSU      --通过recovery刷入,管理ROOT权限 Bus ...

  2. python使用opencv在Windows下调用摄像头

    环境准备 1.我这里使用的是python3.7.4,python官网下载较慢的同学可以移步至 https://pan.baidu.com/s/1XiPafBjM__zfBvvsLyK7kQ 提取码:z ...

  3. Git删除无效远程分支

    当远程分支删除的时候,本地同步下来的远程分支却不会删除,久而久之,本地积累了不少无效的远程分支.找了一下,可以用如下命令清除它们: git remote update -p

  4. Jetbrains推出了一款新的编程字体Mono

    今天看到新闻说Jetbrains推出了一款新的编程字体Mono,便到官网上下载试了一下, 在VS和VS Code中显示效果都非常不错,是并且支持连体,感兴趣的朋友可以到其官网下载试用一下.

  5. 学生选课数据库MySQL语句练习题45道

    1. 查询Student表中的所有记录的Sname.Ssex和Class列. select Sname,Ssex,Class from Student;2. 查询教师所有的单位即不重复的Depart列 ...

  6. 打开exe并传参

    shellexecute(Application.Handle,'open',PWideChar('E:\控件\TMS.Scripter.Studio.Pro..6.0.2.0.Delphi.BCB. ...

  7. 安装phpmyadmin数据可视化

    1.下载压缩包,并且解压 cd /usr/local/src wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-a ...

  8. 指令——history

    作用:查看历史命令 一般用于查看已经输入执行过的命令,也可以作为自己练习时的指标衡量,因为在历史命令里有行号显示.

  9. cf 762C. Two strings

    因为要删去1个串(读错题),所以就直接二分搞就好了. 需要预处理出2个分别从头到尾,或从尾到头需要多长a串的数组,然后二分删去多长就好了. #include<bits/stdc++.h> ...

  10. 120-PHP调用成员方法并将不同类的对象做为参数

    <?php class ourself{ //定义自己人类 private $birthday='1990-12-20'; //定义private修饰的成员属性 public function ...