Java三大集合

先来一张集合概要图:


java集合.png

PS:有序是指元素按照添加时候的顺序排列。

Collection 接口

Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于的子接口(如List和set)。

List 接口

List接口是有序的集合,使用此接口能够精确的控制每个元素插入的位置,能够通过索引(元素在List中位置,类似于数组的下标)来访问List中的元素,第一个元素的索引为 0,而且允许有相同的元素和空元素

  • ArrayList
    是以一种类似数组的形式进行存储,因此它的随机访问速度极快,能在遍历和随机访问时提供更好的性能。该类是非同步的,在多线程环境下需要自己手动管理线程的同步问题。
  • LinkedList
    是以一种基于链表数据结构的集合类,适用于需要进行频繁的插入、删除操作的数据集。该类是非同步的,可以通过List list = Collections.synchronizedList(new LinkedList(...))构造一个同步的List集合。
    PS:Collections是一个很好用的集合工具类哦。

Set接口

Set 接口是无序的集合(PS:准确的说是绝大部分Set是无序的),Set 不保存重复的元素。

  • HashSet
    该类实现了Set接口,不允许出现重复元素,不保证集合中元素的顺序,允许包含值为null的元素,但最多只能一个,并且存放到HashSet中的对象需要实现hashCode()方法。
  • TreeSet
    该类实现了Set接口,将放入其中的元素按序排放,可以实现排序等功能,这就要求你放入其中的对象是可排序的,需要使用到集合框架提供的另外两个实用类ComparableComparator

Map接口

Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射。对于键对象来说,像Set一样,一个Map容器中的键对象不允许重复,这是为了保持查找结果的一致性;如果有两个键对象一样,那你想得到那个键对象所对应的值对象时就有问题了,可能你得到的并不是你想的那个值对象,结果会造成混乱,所以键的唯一性很重要,也是符合集合的性质的。

  • HashMap
    HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。该类根据键的hashcode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。
  • TreeMap
    该类继承自AbstractMap,将放入其中的元素对键按序排放
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、集合入门总结 集合框架: Java中的集合框架大类可分为Collection和Map;两者的区别: 1、Col...
    程序员欧阳阅读 11,676评论 2 61
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,455评论 0 4
  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 1,997评论 0 13
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX阅读 903评论 0 1
  • 一 跟朋友A聊天,说起朋友B目前的困境,听了觉得挺难过的,就弱弱的问朋友,为什么朋友B不用众筹呢?他家的情况属实啊...
    Erin棋落阅读 350评论 0 0