集合体系之List及其子类ArrayList,LinkedList与Vector及其迭代器知识

List(接口)

特点:有序(存储与取出顺序相同),可重复

List子类特点:

​ ArrayList:底层结构是数组,查询快,增删慢。

​ 线程不安全,效率高。

​ Vector:底层结构是数组,查询快,增删慢。

​ 线程安全,效率低。

​ LinkedList:底层结构是链表,查询慢,增删快。

​ 线程不安全,效率高。

List特有功能

  • 添加功能

    void add(int index, E element):在指定位置添加元素
  • 获取功能

    E get(int index):返回列表中指定位置的元素。
  • 列表迭代器功能

    ListIterator<E> listIterator(int index):List特有的迭代器
  • 删除功能

    E remove(int index):移除列表中指定位置的元素,并把删除的元素返回
  • 修改功能

    E set(int index,E element):用指定元素替换列表中指定位置的元素.

List集合的特有遍历功能:

通过size()方法确定边界,在根据get()方法得到对应位置的元素

ListIterator接口

List特有的迭代器

该迭代器继承Iterator迭代器,所以,可直接用hhasNext()和next()方法

特有功能

  • hasPrevious

    boolean hasPrevious():如果以逆向遍历列表,列表迭代器有多个元素,则返回 true。
  • previous

    E previous():返回列表中的前一个元素。

    注意:只有当迭代器先正向遍历后才能逆向遍历,所以意义不大。

ArrayList (类)

特点:底层数据类型是数组,查询快,增删慢,线程不安全,效率高。

Vector (类)

特点:底层结构是数组,查询快,增删慢。线程安全,效率低。

特有功能

  • 添加功能

    • addElement
    public void addElement(E obj):将指定的组件添加到此向量的末尾,将其大小增加 1。如果向量
    的大小比容量大,则增大其容量。 被add()替代
  • 获取功能

    • elementAt
    public E elementAt(int index):返回指定索引处的组件。
    
    被get()替代
    • elements
    public Enumeration<E> elements():返回此向量的组件的枚举。
    
    被iterator()替代
Enumeration(接口 )

早期的集合迭代工具,jdk1.2后被Iterator替代

  • 方法摘要

    • hasMoreElements
    boolean hasMoreElements():测试此枚举是否包含更多的元素。
    
    被hasNext()替代
    • nextElement
    E nextElement():如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
    
    被next()替代

LinkedList (类)

特点:底层结构是链表,查询慢,增删快。 线程不安全,效率高。

特有功能
  • 添加功能

    • addFirst
    public void addFirst(E e):将指定元素插入此列表的开头。
    • addLast
    public void addLast(E e):将指定元素添加到此列表的结尾。

  • 获取功能

    • getFirst
    public E getFirst():返回此列表的第一个元素。
    • getLast
    public E getLast():返回此列表的最后一个元素。
  • 删除功能

    • removeFirst
    public E removeFirst():移除并返回此列表的第一个元素。
    • removeLast
    public E removeLast():移除并返回此列表的最后一个元素。

Javase之集合体系(2)之List及其子类ArrayList,LinkedList与Vector及其迭代器知识的更多相关文章

  1. Javase之集合体系(4)之Map集合

    集合体系之Map集合 ##Map<K,V>( 接口 ) 特点:将键映射到值对象,一个映射不能包含重复的键:每个键只能映射一个值 Map集合与Collection集合的区别 ​ Map集合存 ...

  2. Javase之集合体系(3)之Set及其子类知识

    集合体系之Set及其子类知识 Set(接口) public interface Set<E>extends Collection<E> ​ 特点:无序(存储顺序与取出顺序不一致 ...

  3. Javase之集合体系之(1)集合顶层类Collection与其迭代器知识

    集合体系之集合顶层类Collection与其迭代器知识 集合的由来:Java是一门面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,就必须把多个对象进行存储,而要存 ...

  4. javaSE中级篇3——集合体系(另外一种存储容器)——更新完毕

    集合还是一种工具,所以它们的包都在java.util包下 1.集合的整个体系结构(是需要掌握的体系,完全体系不是这样) 对图中所说的 序和重复 这两词的说明: 序:指的是添加进去的元素和取出来的元素 ...

  5. 浅谈Java的集合体系

    集合体系框架图 集合接口 Java集合类库将接口(interface)与实现(implementation)分离,如上图,Set是一个集合接口,而HashSet与TreeSet都是实现了Set接口的子 ...

  6. JAVA提高九:集合体系

    在经过了前面的JDK6.0新特性的学习后,将进一步深入学习JDK,因为集合的重要性,因此从集合开始入手分析: 一.集合概况 Java是一种面向对象语言,如果我们要针对多个对象进行操作,那么首先必要将多 ...

  7. Java集合中List,Set以及Map等集合体系详解

    转载请注明出处:Java集合中List,Set以及Map等集合体系详解(史上最全) 概述: List , Set, Map都是接口,前两个继承至collection接口,Map为独立接口 Set下有H ...

  8. Java集合体系总结

    一.集合框架 集合是容纳数据的容器,java常用的集合体系图如下.以集合中是否运行重复元素来分,主要有List和Set接口,List集合中可以有重复元素,Set集合集合中的元素不可重复,Iterato ...

  9. 大数据之路week02 Collection 集合体系收尾(Set)

    1.Set集合(理解) (1)Set集合的特点 无序,唯一. (2)HashSet集合(掌握) A: 底层数据结构是哈希表(是一个元素为链表的数组) B: 哈希表底层依赖两个方法: hashCode( ...

随机推荐

  1. vuex动态引入store modules

    主要解决的问题每次建一个module需要自己去主index.js里面去注册 为了偷懒,也为了避免团队开发时同时对index.js 进行修改引发冲突 所以在index.js中 动态的对子目录和模块进行注 ...

  2. javaWeb核心技术第三篇之JavaScript第一篇

    - 概述 - JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言 - 作用:给页面添加动态效果,校验用户信息等. - 入门案例 - js和html的整合 - 方式1:内联式 ...

  3. kmeans均值聚类算法实现

    这个算法中文名为k均值聚类算法,首先我们在二维的特殊条件下讨论其实现的过程,方便大家理解. 第一步.随机生成质心 由于这是一个无监督学习的算法,因此我们首先在一个二维的坐标轴下随机给定一堆点,并随即给 ...

  4. [Go] 在golang中使用正则表达式捕获子表达式

    正则匹配并且可以捕获到()这个里面的子表达式的值,linux的grep命令没办法捕获子表达式的值,只能获取到整条正则匹配的内容 package main import "regexp&quo ...

  5. 关于Linux下进程的详解【进程查看与管理】

    一.关于进程 进程: 已经启动的可执行程序的运行实力 进程的组成:一个进程包含内核中的一部分地址空间和一系列数据结构.其中地址空间是内核标记的一部分内存以供进程使用,而数据结构则用来纪录每个进程的具体 ...

  6. SPA项目之CRUD+表单验证

    1. 表单验证 Form组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则, 并将Form-Item的prop属性设置为需校验的字段名即可 <el-dialog :titl ...

  7. java8-03-Lambda表达式总结

    Lambda 表达式的语法格式      基本结构        ()   ->  {}     左侧   参数列表     右侧   方法体 (Lambda体)             1.无 ...

  8. 实操《kubernetes网络权威指南》之veth pair

    https://book.douban.com/subject/34855927/ 作者: 杜军 出版社: 电子工业出版社出品方: 博文视点出版年: 2019-10页数: 348定价: 89ISBN: ...

  9. The Preliminary Contest for ICPC Asia Shanghai 2019

    传送门 B. Light bulbs 题意: 起初\(n\)个位置状态为\(0\),\(m\)次操作,每次操作更换区间状态:\(0\)到\(1\),\(1\)到\(0\). 共有\(T,T\leq 1 ...

  10. Codeforces Round #599 (Div. 1) C. Sum Balance 图论 dp

    C. Sum Balance Ujan has a lot of numbers in his boxes. He likes order and balance, so he decided to ...