java集合
来源:互联网 发布:知柏地黄丸女性能吃吗 编辑:程序博客网 时间:2024/05/21 02:48
一 . Java集合框架的基本接口有哪些?
1.Collection接口 :单列集合
List接口
ArrayList :底层是数组,存在角标,增删快
LinkedList:链表式结构,无索引,查询快
Vector :线程安全的
Set接口 Hashset :无序的,值唯一
HashSet就是个简化的HashMap的,查看源代码,HashSet里面的HashMap所有的value都是同一个Object,也是非线程安全的.
2.Map接口 :双列集合,key、value形式
HashMap :线程不安全的,key可以为null
HashTable:线程安全的,key不可以为null
二 .HashMap和Hashtable的区别?
1.hashTable是线程安全的,而hashMap是非线程安全的,性能会更高.
因为Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合
2.HashMap存储是无序的,但是null作为key值时存储在第一位.hashTable的key值不可以为空.
3.HashMap是对Map接口的实现,HashTable实现了Map接口和Dictionary抽象类
4.HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75
HashMap扩容时是当前容量翻倍即:capacity*2,Hashtable扩容时是容量翻倍+1即:capacity*2+1
5.两者计算hash的方法不同
Hashtable计算hash是直接使用key的hashcode对table数组的长度直接进行取模.
HashMap计算hash对key的hashcode进行了二次hash,以获得更好的散列值,然后对table数组长度取摸.
6.HashMap和Hashtable的底层实现都是数组+链表结构实现
阅读全文
0 0
- Java集合:集合框架
- java集合---set集合
- JAVA 集合 的 集合
- 【集合】Java集合对比
- JAVA集合-Map集合
- JAVA集合-Set集合
- JAVA集合-List集合
- java集合------Map集合
- Java集合----List集合
- Java集合----Set集合
- Java集合----Map集合
- JAVA集合
- JAVA集合
- Java集合
- JAVA集合
- Java集合
- Java集合
- java 集合
- Dubbo 启动 报 javassist/ClassPath And org/jboss/netty/channel/ChannelFactory异常
- fastcgi_finish_request
- MySQL数据库操作
- 空格替换-LintCode
- MyEClipse中SVN使用
- java集合
- matlab统计极值的方法
- 【Android学习】android.view.ViewStub
- 高并发下的程序设计,高并发下的数据库设计
- 序列
- STORM入门之(yaml配置文件说明)
- Node.js中的fs.open、fs.read、fs.write、fs.close方法;
- Android studio 分析内存泄漏
- 获取spring配置文件