Java 基础 集合框架

  Java中的集合从类的继承和接口的实现结构来说,可以分为两大类:

  1 继承自Collection接口,包含List、Set和Queue等接口和实现类。

  2 继承自Map接口,主要包含哈希表相关的集合类。

  第一类

  Collection接口继承和实现结构图如下:

  图中的绿色的虚线代表实现,绿色实线代表接口之间的继承,蓝色实线代表类之间的继承,下同。

  List

  常用的是ArrayList和LinkedList。ArrayList通过数组实现,随机访问比较快,增删操作比较慢。而LinkedList通过链表实现,增删操作比较快,随机访问比较慢。两者都是非线程安全的。

  Queue

  LinkedList实现了Deque接口,所以LinkedList具有双端队列的功能。PriorityQueue内部数据结构是堆,每次出队列的元素总是当前队列中最大值(大顶堆)或是最小值(小顶堆)。

  Set

  Set与List的主要区别是Set不允许元素重复,而List允许元素重复。HashSet和LinkedHashSet的区别在于后者保证元素插入集合的元素顺序与输出顺序保持一致。而它们与TreeSet的区别在于TreeSet按照Comparator进行排序,默认情况下按照字符的自然顺序升序排列。

  

  第二类

  Map接口继承和实现结构图如下:

  Map类型的集合最大的优点在于其查找效率比较高,理想情况下可以实现O(1)的时间复杂度。Map中最常用的是HashMap。LinkedHashMap与HashMap的区别在于前者能够保证插入集合的元素顺序与输出顺序一致。这两者与TreeMap的区别在于TreeMap根据键值进行排序,底层的实现也有本质的区别,如HashMap底层是一个哈希表,而TreeMap的底层是一棵树。在多线程环境下,通常使用ConcurrentHashMap,因为Hashtable效率比较低。

  参考资料

  Java集合之整体结构

原文地址:https://www.cnblogs.com/WJQ2017/p/8278389.html

时间: 2024-10-11 01:00:58

Java 基础 集合框架的相关文章

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

黑马程序员——java基础---集合框架

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.集合框架 概念:集合框架是Java中为了方便对集合进行存储.操作而形成的体系.集合是针对对象最常见的一种存储形式. 数组和集合类同是容器,区别在哪里?     相同点:               集合和数组都是容器,都可一存储对象(对象引用).     不同点:               数组长度固定,集合长度可变.               数组可以存储基本数据类型,集合却只能存储

Java基础-集合框架

首先,集合与数组的区别?          1. 长度:     数组固定:集合可变.          2. 存储类型:     数组存储基本数据类型和对象:集合只能存储基本数据类型.                                        数组存储的元素必须是一个数据类型:集合存储对象可以是不同类型.                                       集合类(为什么出现集合类??)     面向对象语言对事物的体现都是以对象的形式,所以为了方便

黑马程序员---java基础---集合框架工具类:Collections和Arrays

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------        Collections 一.概述 Collections是对集合框架的一个工具类.它里边的方法都是静态的,不需要创建对象.并未封装特有数据. 在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二

java基础--集合框架的认识

一.集合框架 对于不知道存储数量和更复杂的方式存储对象用集合框架. 其中有几个常用的接口和实现类:Collection父接口.List接口,Set接口,Map接口, ArrayList实现类.LinkedList实现类.hashSet实现类.hashMap实现类 Collection集合框架的父接口,该接口存储的是一组不唯一,无序的对象. Collection父接口下有两个子接口: List接口:存储的数据是 不唯一的.有序的 Set接口 : 存储的数据是惟一的.无序的 List接口下也有两个实

黑马程序员-Java基础-集合框架-TreeSet、二叉树、泛型

第一讲 TreeSet 1.  概述 TreeSet可以对Set集合中的元素进行排序,按照自然顺序排. 2.  演示代码 输出结果: 总结:TreeSet会对元素进行自然排序,大写排在小写前面. 第二讲  TreeSet存储自定义对象 1. 概述: 将自定义对象存储到TreeSet集合中. 2. 思路: 自定义学生类,并将学生对象存储到TreeSet中,在存储过程中按照年龄排序. 3. 练习:往TreeSet集合中存储自定义对象(学生),并按照学生年龄进行排序 小结: 自定义对象需要重写Comp

Java基础-集合框架之Set

ps:本人小菜一枚,所以本文是自我学习后的一篇总结,大虾请您飘过 Set类概述 Set是最简单的集合,集合中的对象不按照特定的方式排序,并且没有重复的对象. Set集合里多个对象之间没有明显的顺序,基本与Collection方法相同.只是行为不同(Set不允许包含重复元素). HashSet HashSet按Hash算法来存储集合的元素,因此具有很好的存取和查找性能. 特点: HashSet不是同步的,多个线程访问是需要通过代码保证同步 集合元素值可以使null. 注意:HashSet存储自定义

黑马程序员-java基础-集合框架-Collection、List、Set

第一讲:体系概述 一.概述 1.  作用:用于存放对象的容器 2.  特点:只用于存储对象,集合长度可变,集合可以存储不同类型的对象: 3.  与数组的区别:虽然数据也可以存储对象,但数组的长度是固定的,而集合长度是可变的,集合类的出现可以解决现实生活中数量不确定的问题: 4.  常用的集合类及结构 第二讲:共性方法 集合实现了Collection接口,Collection接口声明了如下常用方法: 1)  向集合中添加元素:add(Object obj).addAll() add()方法用于向集

黑马程序员-Java基础---集合框架-Map

第一讲 Map概述&子类对象特点&共性方法 1.  定义 Map集合:该集合存储键值对,一对一对的往里存,而且要保证键是唯一的.若存了重复的键,那么对应此键的值将被后一个覆盖. 2.  Map子类对象特点 Map集合有如下三个子类: l  Hashtable:底层是哈希表数据结构,不可存入null键或null值.线程同步,JDK1.0就有,效率稍低. l  HashMap:底层是哈希表数据结构,可以存入null键或null值.线程同步,JDK1.2出现,效率较高. l  TreeMap:底