java的常用数据结构
Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。
---
1. Collection: 又有两大类set,list。
- list(相当于普通数组,元素可重复):基本的三类
1 ArrayList: 元素单个,效率高,多用于查询,底层结构数组,有序。
2 LinkedList:元素单个,多用于插入和删除,底层结构双向链表,有序。
3 Vector: 元素单个,线程安全,多用于查询,底层结构数组,有序。
4 Stack:栈,先进后出
   
- set(数学意义上的集合,元素不可重复):
1 HashSet:HashSet的底层实际上是由HashMap实现的。其四个构造函数分别对应相应的HashMap。
  
  2 TreeSet:其中的元素按照升序排列,缺省是按照自然顺序进行排序,意味着TreeSet中的元素要实现Comparable接口,或者有一个自定义的比较器Comparator。底层数据结构红黑树。
  
2.Map(存储键值对,key唯一):
1 HashMap:继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的,无序且值不唯一。
   
   2 TresMap:是一个有序的key-value集合,它是通过红黑树实现的。有序,不安全,值也不唯一。
   
   3 ConcurrentHashMap:线程安全的,使用的锁分段技术。


java的常用数据结构的更多相关文章
- 动图+源码,演示Java中常用数据结构执行过程及原理
		
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
 - 动图+源码,演示 Java 中常用数据结构执行过程及原理
		
阅读本文大概需要 3.7 分钟. 作者:大道方圆 cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想 ...
 - 图解Java常用数据结构(一)【转载】
		
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
 - 图解Java常用数据结构(一)
		
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList Linke ...
 - 【转载】图解Java常用数据结构(一)
		
图解Java常用数据结构(一) 作者:大道方圆 原文:https://www.cnblogs.com/xdecode/p/9321848.html 最近在整理数据结构方面的知识, 系统化看了下Jav ...
 - 图解Java常用数据结构
		
最近在整理数据结构方面的知识, 系统化看了下 Java 中常用数据结构, 突发奇想用动画来绘制数据流转过程. 主要基于 jdk8, 可能会有些特性与 jdk7 之前不相同, 例如 LinkedList ...
 - Java中的数据结构有哪些?HashMap的工作原理是什么?
		
Java中常用数据结构 常用的数据结构有哈希表,线性表,链表,java.util包中有三个重要的接口:List,Set,Map常用来实现基本的数据结构 HashMap的工作原理 HashMap基于ha ...
 - JAVA常用数据结构及原理分析
		
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balaba ...
 - Java 常用数据结构对象的实现原理 集合类 List Set Map 哪些线程安全 (美团面试题目)
		
Java中的集合包括三大类,它们是Set.List和Map, 它们都处于java.util包中,Set.List和Map都是接口,它们有各自的实现类. List.Set都继承自Collection接口 ...
 
随机推荐
- mvc根据绝对路径下载文件
			
首先页面需要一个a标签直接指向下载文件的Action并传值:图片地址,以及图片名称(记住要带后缀名的). 然后是Action里面的代码. SiteHelper.DownloadFile(fileUrl ...
 - Mesos源码分析(13): MesosContainerier运行一个Task
			
MesosContainerizer的实现在文件src/slave/containerizer/mesos/containerizer.cpp中 Future<bool> MesosC ...
 - Mesos源码分析(6): Mesos Master的初始化
			
Mesos Master的初始化在src/master/master.cpp中 在Mesos Master的log中,是能看到这一行的. 1.初始化role,并设置weight权重 ...
 - Mesos源码分析(5): Mesos Master的启动之四
			
5. Create an instance of allocator. 代码如下 Mesos源码中默认的Allocator,即HierarchicalDRFAllocator的位置在$ME ...
 - 判断二叉树是否BST
			
一.问题: 请实现一个函数,检查一棵二叉树是否为二叉查找树.给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树. 二.思路: 解法一:从根节点开始遍历二叉树, ...
 - Go语言数组和切片的原理
			
目录 数组 创建 访问和赋值 切片 结构 初始化 访问 追加 拷贝 总结 数组和切片是 Go 语言中常见的数据结构,很多刚刚使用 Go 的开发者往往会混淆这两个概念,数组作为最常见的集合在编程语言中是 ...
 - 【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用
			
系列目录 一. 创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...
 - [Swift]LeetCode357. 计算各个位数不同的数字个数 | Count Numbers with Unique Digits
			
Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...
 - [Swift]LeetCode977. 有序数组的平方 | Squares of a Sorted Array
			
Given an array of integers A sorted in non-decreasing order, return an array of the squares of each ...
 - Docker 搭建pxc集群 + haproxy + keepalived 高可用(一)
			
一.首先需要安装好docker,安装方法可以参考之前一篇博文Centos7安装docker [root@localhost ~]# systemctl start docker [root@local ...