java常用集合类:Deque,ArrayList,HashMap,HashSet
图一:java collection 类图
- Queue家族
- 无论是queue还是stack,现在常用的是Deque的实现类:如单线程的ArrayQueue,多线程的ArrayBlockingQueue
- Deque:读作“deck”,算是一种“双端队列”,即支持头部和尾部的数据访问和增删。----支持stack和queue的操作
- 关系:ArrayDeque --> Deque(I) -> Queue(I) -> Collection(I),其中->表示继承,-->表示实现,(I)表示接口。
- 关系:Stack -> Vector ->AbstractList。Stack的方法不如Deque完整和稳定,所以优先采用Deque的实现类来表示Stack。
- List家族
- Vector和ArrayList基本一样,都是Collection家族List下的实现类,都是可变数组,只不过Vector是线程同步的,ArrayList不是。所以一般如果没有同步要求,都建议使用ArrayList
- LinkedList实现了很多接口,如List,Deque,它是双向链表,链表的一般操作都支持。不过也是单线程的(即非同步的),但是可能因为太大了?-->反正不经常使用
- Map家族
- HashMap和HashTable差不多。不过HashMap是单线程(非同步)的,而且支持null(键和值都是null)。HashTable是同步的,且键和值都不能为null。常用HashMap
- Set家族
- HashSet背后是HashMap在支撑,其add()操作添加的就是键值,因此HashSet不允许插入重复的值,当然允许插入null(hashmap允许空键)
Collection总结:
上边是我常用的,这里copy一篇文章的总结(其中的deprecated应该指不常用,不赞成使用,倒不是废弃了):http://www.importnew.com/13801.html
单线程 | 并发 | |
Lists |
|
|
Queues / deques |
|
|
Maps |
|
|
Sets |
|
|
Deque总结:
Deque不常用,这里简单总结下它的用法:
- Deque是双端队列,可以在队首和队尾访问和增删元素。不支持随机访问(List接口支持随机访问元素)
- 下标中返回Special value的,针对的是有容量限制的Deque容器的操作方法的返回值
- Queue和Stack都可以用双端队列来实现
- Deque的Queue实现:在队首删除或访问数据,在队尾插入数据
- Deque的Stack实现:在队首删除、访问、插入数据
Queue和Stack方法与Deque的对应关系如下:(Queue和Stack相应的方法名在Deque中也都支持,其实现是通过调用下表右列中的方法。)
- 注意Queue相关的方法有六个,其实可以分为两组,如下表所示(返回special value也是针对容量有限制的Queue实现的):
java常用集合类:Deque,ArrayList,HashMap,HashSet的更多相关文章
- Java自学-集合框架 ArrayList和HashSet的区别
Java ArrayList和HashSet的区别 示例 1 : 是否有顺序 ArrayList: 有顺序 HashSet: 无顺序 HashSet的具体顺序,既不是按照插入顺序,也不是按照hashc ...
- java集合专题 (ArrayList、HashSet等集合底层结构及扩容机制、HashMap源码)
一.数组与集合比较 数组: 1)长度开始时必须指定,而且一旦指定,不能更改 2)保存的必须为同一类型的元素 3)使用数组进行增加/删除元素-比较麻烦 集合: 1)可以动态保存任意多个对象,使用比较方便 ...
- java 遍历方法 及 数组,ArrayList,HashMap,HashSet的遍历
一,遍历方法的实现原理 1.传统的for循环遍历,基于计数器的: 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止.主要就是需要按元素的位置来读取元素. ...
- JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)14
一.集合Collection 1. 集合介绍 变量:表示的内存中的一个空间,只能保存确定类型的单个数据 数组:表示的是内存中的多个连续的空间,这些空间中可以存储多个同类型的数据. 后期继续学习面向对象 ...
- java - day011 - 集合, ArrayList HashMap,HashSet, Iterator 接口, for-each 循环格式
集合 ArrayList 丑数: 能被3,5,7整除多次, ArrayList list 接口 | - ArrayList | - Linked ...
- Java常用集合类
上述类图中,实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,Abstract ...
- Java常用集合类详解
在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便.所有的Java集合都在java.util包中. 在编写程序的过程中,使用到集合类,要根据不同的需求 ...
- java常用集合类详解(有例子,集合类糊涂的来看!)
Framework集合框架是一个统一的架构,用来表示和操作集合.集合框架主要是由接口,抽象类和实现类构成.接口:蓝色:实现类:红色Collection|_____Set(HashSet)| ...
- 第一章 Java常用集合类总览
1.Java最常用的集合类 Collection接口 List接口(允许有重复元素):ArrayList.LinkedList.Vector.Stack Set接口(不允许有重复元素,可用于去重操作) ...
随机推荐
- Evaluation
precision是tp/(tp+fp),检索结果中正确的比例 recall是tp/(tp+fn),所有需要被检索出来的比例 1.真实情况:恶性,检查结果:恶性,这种情况就叫做:true positv ...
- 使用OLEDB读取excel和csv文件
这是我第一次在博客上写东西,简单的为大家分享一个oledb读取文件的功能吧,这两天在做一个文件导入数据库的小demo,就想着导入前先在页面上展示一下,之前调用Microsoft.Office.Inte ...
- 【Cocos2d入门教程三】HelloWorld之一目了然
什么程序都是从HelloWorld先开始.同样Cocos2d-x我们先从HelloWorld进行下手.下面是HelloWorld的运行完成图: 建立好的Cocos游戏项目中会有两个比较常用接触的文件夹 ...
- Part 45 to 47 Talking about Enums in C#
Part 45 C# Tutorial Why Enums Enums are strongly typed constants. If a program uses set of integ ...
- 北大ACM(POJ1012-Joseph)
Question:http://poj.org/problem?id=1012 问题点:约瑟夫环. Memory: 220K Time: 329MS Language: C++ Result: Acc ...
- a标签替代input的submit提交功能
在工作中有时候会遇到A标签,但是提交表单的时候我们需要用到submit来提交表单,下面几行代码很好的解决了这个问题! <div class="btn"><a hr ...
- 理解C#系列 / 核心C# / 判断&循环&跳转
判断&循环&跳转 说明 本节写的是C#语言的控制程序流的语句,“控制程序流”就是控制程序运行流程的意思. 判断 很容易理解:如果……就…… if语句:测试特定条件是否满足,如果满足就执 ...
- AMQ学习笔记 - 11. Spring-JmsTemplate之执行
概述 前面我们分别介绍了发送.接收和浏览,这三个的实现都依赖于将要介绍的执行. 执行算是一个相对比较底层的方法系列,一般情况下,我们不需要直接面向将要介绍的方法. 执行 1.关于回调接口 在讲执行之前 ...
- JS函数式编程【译】第二章总结
- 支持向量机 support vector machine
SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...