美文网首页
Java集合

Java集合

作者: Kevin_Huang54 | 来源:发表于2019-02-14 16:36 被阅读0次

基本概念:

数组可以储存基本类型和数组,集合类只能储存引用对象,不能储存基本类型

Collection接口和Iterator接口

  • Iterator接口是Collection接口的父接口
  • Iterator接口提供hasNext、next、remove等迭代器方法
  • 集合的迭代器遍历:
List<String> strings = new ArrayList<>();

Iterator<String> iterator = strings.iterator();//集合.iterator返回迭代器
if (iterator.hasNext()) { //hasNext判断有无下一个元素
    System.out.println(iterator.next()); //next()返回下一项
    iterator.remove(); //remove删除上一次next的元素
}
  • Collection接口是Set、List、Queue的父接口,提供add、remove、contain、clear、isEmpty、size、toArray等集合的增删改查方法

Set接口

  • HashSet
    • HashSet使用数组来维护,通过hashCode来确定存储位置
    • HashSet先hashCode判断元素存储位置,再通过equals判断是否是同一元素(替换或者追加链表元素)
    • 尽量不要去修改set中可变对象的实例变量,尤其是参与hashCode计算的实例变量,这会导致set元素混乱
  • LinkedHashSet是有序set,记录元素的插入顺序
    • 使用链表来维护,其查找速度比HashSet慢,优势在于遍历很快
  • TreeSet是自动排序的set
    • TreeSet调用元素的compareTo方法自动升序排序
    • 内部通过红黑树维护元素顺序,其查找和插入速度都是O(logn)
    • 元素必须实现Comparable方法,否则会抛出异常
    • 与HashSet不同,TreeSet判断相等的唯一标准是compareTo方法返回0,如果与现有元素相等,将无法插入
    • TreeSet只在插入时排序,之后如果修改元素,不会重新排序
  • TreeSet的特殊方法:
    • first、last
    • lower、higher,返回大于/小于参数的第一个元素
    • subSet、headSet、tailSet,返回大于/小于/一个范围的set子集
  • 性能比较
    • HashSet总是比TreeSet性能好,因为TreeSet需要维护红黑树来保持排序
    • LinkedHashSet比HashSet遍历更快,但插入、删除稍慢

List接口

  • List是带索引的有序集合,因此提供的方法大多与索引有关
  • 根据index,可以add、remove、get、set、indexOf、subList

队列接口Queue、双向队列Deque接口

  • Deque接口是Queue的子接口
  • Deque接口的实现类:ArrayDeque、LinkedList
  • ArrayDeque以数组形式保存,随机访问速度更快
  • LinkedList以链表形式保存,实现了List接口、Deque接口,可以作为List、队列、栈使用

相关文章

  • 一篇文章,全面解读Android面试知识点

    Java Java基础 Java集合框架 Java集合——ArrayList Java集合——LinkedList...

  • 收藏夹

    博文 Java 集合:Java 集合学习指南 Java 集合:Java 集合源码剖析 HashMap:HashMa...

  • Java 集合框架_开篇

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • Java 集合框架_List

    Java 集合框架系列 Java 集合框架_开篇Java 集合框架_ListJava 集合框架_ArrayList...

  • 9、java集合

    1、什么是java集合 java集合是用来存储多个数据引用的数据类型。 2、java集合分类 java集合类在ja...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • Java基础——集合体系Map详解

    Java基础——集合体系Map详解 上文中我们了解了集合体系中的单列集合:Java基础——集合以及Java集合——...

  • Java基础

    Java集合框架 一、Java集合类简介: Java集合大致分为四种体系:Set:无序、不可重复的集合List:有...

  • JavaSE集合类

    JavaSE集合类 概述 Java中集合类概述Java中数组与集合的比较Java中集合框架层次结构 Collect...

  • 集合系列(一):集合框架概述

    集合系列(一):集合框架概述 Java 集合是 Java API 用得最频繁的一类,掌握 Java 集合的原理以及...

网友评论

      本文标题:Java集合

      本文链接:https://www.haomeiwen.com/subject/pijeeqtx.html