文档章节

hashmap和arraylist的区别

MrBoyce
 MrBoyce
发布于 01/29 11:02
字数 486
阅读 122
收藏 1

ArrayList和HashMap是异步的,Vector和HashTable是同步的,所以Vector和HashTable是线程安全的,而 ArrayList和HashMap并不是线程安全的。因为同步需要花费机器时间,所以Vector和HashTable的执行效率要低于 ArrayList和HashMap。

 

 

List接口

List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

 

 

Map接口

请注意,Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。

 

HashMap是允许使用 null 值和 null 键的!Hashtable是不允许的!

 

 HashSet : 为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。

果说查找的话肯定是HashMap的效率高些嘛,因为它是散列存储的,而ArrayList是顺序存储的

执行效率是Map的一个大问题。看看get()要做哪些事,就会明白为什么在ArrayList中搜索“键”是相当慢的。而这正是HashMap提高速度的地方。HashMap使用了特殊的值,称为“散列码”(hash code),来取代对键的缓慢搜索。“散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。所有Java对象都能产生散列码,因为hashCode()是定义在基类Object中的方法。

   HashMap就是使用对象的hashCode()进行快速查询的。此方法能够显着提高性能

本文转载自:https://blog.csdn.net/u012102536/article/details/77726438

MrBoyce
粉丝 6
博文 109
码字总数 40158
作品 0
成都
程序员
私信 提问
猎头最爱问的java面试题附答案(三)

1.你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么? 大O符号描述了当数据结构里面的元素增加的时候,算法的规模或者是性能在最坏的场景下有多么好。 大O符号也可用来描述其...

嘿你好夏天
2017/12/30
0
0
数组 、HashMap 与ArrayList 区别

一、 整体诉说: 1.ArrayList是不固定的,比如用sql查询数据库,不知道有多少记录返回,用Arraylist。 2.HashMap/Hashtable 和 Vector/ArrayList 都是放一组对象,一个是用key object来定位e...

kuchawyz
2018/04/24
387
0
浅谈JAVA集合框架 (引的)

Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection classes)。集合在java中非常重要,在讨论之前,先来看几...

厅一一
2009/07/21
0
0
Android基础之Java集合框架Collection

一、Collection是什么 首先我们一起来探讨一下Collection究竟是什么个玩意,如上图所示List、Set、Queue、Map都指向Collection,它们都只是一个接口,并不是实现类。正因为有了Collection集合...

silencezwm
2018/07/03
0
0
Collection 和 Map 遍历过程的区别

1:Collection 和 Map 都是Java体系为我们提供的强大集合工具,他们的遍历是最多的操作,那么他们有什么不同呢?请看如下代码 import java.util.ArrayList;import java.util.Collection;imp...

刘付kin
2016/12/07
4
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
6
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部