黑马程序猿——JAVA基础——集合



ArrayList和Vector功能类似。
Vector从Java 1.0起就存在,ArrayList从Java 1.2起才存在,较新。
所以Vector在JavaME、Card等各种微小版本号都能够使用,而ArrayList不能
ArrayList不具备线程同步的安全性,但速度较快。
Vector具备线程安全。
Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的。HashMap是Java 1.2引进的Map接口的一个实现。
或许最重要的不同是Hashtable的方法是同步的。而HashMap的方法不是。这就意味着。尽管你能够不用採取不论什么特殊的行为就能够在一个多线程的应用程序中用一个Hashtable,但你必须相同地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法能够让你同步訪问潜在的HashMap。这么做的结果就是当你不须要同步时,你不能切断Hashtable中的同步(比方在一个单线程的应用程序中),并且同步添加了非常多处理费用。
第三点不同是,仅仅有HashMap能够让你将空值作为一个表的条目的key或value。HashMap中仅仅有一条记录能够是一个空的key,但随意数量的条目能够是空的value。这就是说,假设在表中没有发现搜索键,或者假设发现了搜索键,但它是一个空的值,那么get()将返回null。
假设有必要,用containKey()方法来差别这两种情况。
一些资料建议。当须要同步时,用Hashtable,反之用HashMap。可是,由于在须要时,HashMap能够被同步,HashMap的功能比Hashtable的功能很多其它,并且它不是基于一个陈旧的类的,所以有人觉得,在各种情况下,HashMap都优先于Hashtable。
二、对于java集合框架
他们之间的比較:
| 是否有序 | 是否同意元素反复 | ||
| Collection | 否 | 是 | |
| List | 是 | 是 | |
| Set | AbstractSet | 否 | 否 |
| HashSet | |||
| TreeSet | 是(用二叉排序树) | ||
| Map | AbstractMap | 否 | 使用key-value来映射和存储数据。key必须唯一,value能够反复 |
| HashMap | |||
| TreeMap | 是(用二叉排序树) | ||
黑马程序猿——JAVA基础——集合的更多相关文章
- 黑马程序猿————Java基础日常笔记---反射与正則表達式
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 黑马程序猿----Java基础日常笔记---反射与正則表達式 1.1反射 反射的理解和作用: 首 ...
- 黑马程序猿——————java基础
一.软件开发 软件是什么? 软件是简单的来说,计算机数据和指令的集合,数据(比方年龄,性别).指令及时告诉计算机怎样对他进行处理.计算机但是没有人那么聪明啊! 二.图形化界面(GUI),主要特点就是. ...
- 黑马程序猿——JAVA基础——IO流
----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一. 一.IO流的三种分类方式 1.按流的方向分为:输入流和输出流 2.按流的数 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类: Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...
- 黑马程序员——JAVA基础之Map集合
------- android培训.java培训.期待与您交流! ---------- Map集合: 该集合存储键值对.一对一对往里存.而且要保证键的唯一性. 和Set很像,其实Set底层就是使用了M ...
- 黑马程序员——JAVA基础之set集合
------- android培训.java培训.期待与您交流! ---------- Set: 元素是无序(存入和取出的顺序不一定一致),元素不可以重复. Set接口中常用的类: ...
- 黑马程序员——JAVA基础之List集合
------- android培训.java培训.期待与您交流! ---------- Collection : |--List:元素是有序的,元素可以重复.因为该集合体系有索引. | ...
随机推荐
- Greenplum使用教程
Greenplum简介 GreenPlum是一个关系型数据库集群.,它实际上是由多个独立的数据库服务组合成的逻辑数据库.GreenPlum是基于PostgreSQL(开源数据库)的分布式数据库,它采用 ...
- Oracle 批量插入值
工作中常遇到将Excel文档数据转为SQL语句,然后再将SQL语句插入到数据库已完成数据转移保存到数据库中,下面介绍下如何一次性插入多条SQL语句,先抛个图: 由于真实数据不变给大家看,所以这里是做了 ...
- .Net Core中使用Quartz.Net Vue开即用的UI管理
Quartz.NET Quartz.Net 定制UI维护了常用作业添加.删除.修改.停止.启动功能,直接使用cron表达式设置作业执行间隔,有完整的日志记录. Quartz.NET是一个功能齐全的开源 ...
- 汇编程序18:利用and和or指令变换大小写
assume cs:code,ds:data //and指令使某位变0,or指令使某位变1 data segment db 'BaSic','iNfOrMaTiOn' //db指令:定义字节数据,与d ...
- wap网测一道题目
1. 给定一个字符串s, 1 <= len(s) <= 3000, 定义odd palindrome string为长度为奇数的回文串, 求s中该奇回文串的个数. 比如axbcba , 结 ...
- U - Three displays
Problem description It is the middle of 2018 and Maria Stepanovna, who lives outside Krasnokamensk ( ...
- [WIFI插座][阅读记录][SoC][RT5350] 00.目录 RALINK AP SDK 4.1.0.0 USER’s MANUAL
来源是CSDN,百度网盘下载地址 http://pan.baidu.com/share/link?shareid=3504767505&uk=3426044377 授权声明,略过 免责声明 ...
- 终极解决VS2015 安装失败问题,如 安装包损坏或丢失
1.去微软官网下载完成ISO镜像,最好不要在线安装, 打开官方链接 https://www.visualstudio.com/zh-cn/downloads/download-visual-studi ...
- VHDL之concurrent之when
WHEN (simple and selected) It is one of the fundamental concurrent statements (along with operators ...
- (转)基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码
http://www.cnblogs.com/wuhuacong/p/4073203.html 在Web开发的时候,我们很多时候,需要引用很多CSS文件.JS文件,随着使用更多的插件或者独立样式文件, ...