集合框架总结

集合体系

Collection(单列)

List(有序,可反复)

ArrayList: 底层数据结构是数组,查询快。增删慢。线程不同步。效率高。

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

线程不同步,效率高。

Vector: 底层数据结构是数组。查询快。增删慢。线程同步,效率低。

Set(无序,唯一)

HashSet:底层数据结构是哈希表。线程不同步。效率高。 怎么保证唯一性的呢?它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。

同:继续走equals()。看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。

TreeSet:底层数据结构是二叉树。

线程不同步,效率高。

怎么保证唯一性的呢?是依据返回是否是0。

怎么保证排序的呢?两种方式

一、自然排序(元素具备比較性) 实现Comparable接口

二、比較器排序(集合具备比較性) 实现Comparator接口

Map(双列 底层结构是针对键有效。跟值无关)

HashMap:底层数据结构是哈希表。

线程不同步,效率高。

怎么保证唯一性的呢?

它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。

同:继续走equals(),看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。

Hashtable:底层数据结构是哈希表。线程安全,效率低。

怎么保证唯一性的呢?

它依赖两个方法:hashCode()和equals()顺序:首先推断hashCode()值是否同样。同:继续走equals(),看返回值假设true:就不加入到集合。假设false:就加入到集合。不同:就加入到集合。

TreeMap:底层数据结构是二叉树。线程不同步,效率高。

怎么保证唯一性的呢?

是依据返回是否是0。

怎么保证排序的呢?

两种方式自然排序(元素具备比較性)实现Comparable接口比較器排序(集合具备比較性)实现Comparator接口

集合常见应用功能

加入功能。推断功能,删除功能,获取功能,长度功能

遍历方式

List Set迭代器

Iterator

ListIterator

Map迭代器

有俩种选择一种去用就可以。

(妻子找丈夫)键和值

(结婚证找妻子丈夫)键和值映射关系

Map的两种典型遍历方式:

entrySet() 与 keySet()。

entrySet的遍历方式要比keySet()高很多,由于欲取得相同的key-value对。keySet()相当于遍历了两次Map。

集合那么多什么时候该用谁?

是否键值对?

是:Map

是否对键排序?

是:TreeMap

否:HashMap

不懂的情况下。使用HashMap。

否:Collection

是否唯一?

是:Set

是否对元素进行排序?

是:TreeSet

是否须要有序?

是:LinkedSet

否:HashSet

不懂的情况下,使用HashSet

否:List

是否要安全?

是:Vector(真正开发中也不用)

否:ArrayList。LinkedList

注意:查询多:ArrayList

增删多:LinkedList

不懂的情况下,使用ArrayList

时间: 2024-08-03 04:57:35

集合框架总结的相关文章

Java—集合框架List

集合的概念 现实生活中:很多的事物凑在一起 数学中的集合:具有共同属性的事物的总和 Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象 集合的作用 在类的内部,对数据进行组织(针对作用与意义一样的属性,将他们放到一个集合中) 简单而快速的搜索大数量的条目 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中快速的插入或删除有关元素 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型 与数组相比 数组的长度

《深入理解Java集合框架》系列文章

Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framework, JCF)的资料却很少,甚至很难找到一本专门介绍它的书籍,这给Java学习者们带来不小的麻烦.我深深的不解其中的原因.虽然JCF设计参考了STL,但其定位不是Java版的STL,而是要实现一个精简紧凑的容器框架,对STL的介绍自然不能替代对JCF的介绍. 本系列文章主要从数据结构和算法层面分析

JAVA基础之集合框架

集合框架(collections framework) 首先要明确,集合代表了一组对象(和数组一样,但数组长度不能变,而集合能).Java中的集合框架定义了一套规范,用来表示.操作集合,使具体操作与实现细节解耦. 其实说白了,可以把一个集合看成一个微型数据库,操作不外乎"增删改查"四种操作,我们在学习使用一个具体的集合类时,需要把这四个操作的时空复杂度弄清楚了,基本上就可以说掌握这个类了. 设计理念 主要理念用一句话概括就是:提供一套"小而美"的API.API需要对

java中的集合框架

由于数组具有属性单一,长度不可改变的缺点,于是在程序中我们使用集合来代替它. 集合中不可放入基本数据类型,基本数据类型都是通过自动拆包和自动装箱功能才能放入和取出集合. 分类:Collection接口和Map接口 Collection:存放单一值元素,又可分为list接口类型和set接口类型 list接口类型:存放元素是有序的可重复的,可通过循环来取出其中的元素,实现类ArrayList() set接口类型:hash值排列,存放元素是无序不可重复的,通过指针取出其中元素,实现类HashSet()

JAVA集合框架

收藏 查看我的收藏 146有用+1 56 编辑 Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称.用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台.动态的Web.Internet计算.从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet.集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.任何集合框架都包含三大块内容:对外的接口.接口的实

Java集合框架学习笔记

本文为学习笔记,学习课程为慕课网Java入门第三季中的集合框架部分,若需要研究文中的代码,可前往下载.http://www.imooc.com/learn/110 1. List(Collection子接口) 1.1 实例化 List list = new ArrayList(); ??List是一个接口,不可直接实例化,通常情况下ArrayList实现类进行实例化. 1.2 增 1.2.1 add(obj) ??直接将obj对象加入List末位. 1.2.2 add(i, obj) ??将ob

Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口

通常情况下,你会希望遍历一个集合中的元素.例如,显示集合中的每个元素.一般遍历数组都是采用for循环或者增强for,这两个方法也可以用在集合框架,但是还有一种方法是采用迭代器遍历集合框架,它是一个对象,实现了Iterator 接口或ListIterator接口.迭代器,使你能够通过循环来得到或删除集合的元素.ListIterator 继承了Iterator,以允许双向遍历列表和修改元素.Iterator和ListIterator都是泛型接口,它们的 声明: interface  Iterator

我所理解Java集合框架的部分的使用(Collection和Map)

所谓集合,就是和数组类似--一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接口,长虚线表示抽象类,实线表示类,箭头表示实现接口或者继承)(在网络上找的图,不知道原作者,侵权请联系我删除)(总之,关系很复杂,所以不用记得这个图,只是用来吓吓人而已的). 下面贴上个人理解之精简版之Collection(集)和Map(地图?暂且这么理解吧),话说思维导图蛮好用,以下是两幅思维导图

【Java集合源码剖析】Java集合框架

Java集合工具包位于package java.util下.包含了一些常用的数据结构,如数组.链表(单/双向).树.栈.队列.哈希表等. Java集合框架大致可分为五部分:List列表.Set集合.Map映射.迭代器(Iterator.Enumeration).工具类(Arrays.Collections). Java集合类的整体框架如下: 如图,Java集合类大致分为两大类:Collection和Map. Collection主要包括两部分:List和Set. List接口通常表示一个列表(数

【集合框架】JDK1.8源码分析之Collections && Arrays(十)

一.前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析.可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析. 二.Collections源码分析 2.1 类的属性   2.2 构造函数 private Collections() { } 说明:私有构造函数,在类外无法调用. 2.3 方法分析 下面是Collections的所有方法. 可以看到,Collections的方法包含了各种各样的操作.下面分析最常用的方法. 1. sort函数 该函数有两个重载函