hashmap和hashtable,arraylist和vector的区别
2024-10-11 12:01:55
hashmap线程不安全,hashtable线程安全
hashmap允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
hashtable任何非 null
对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode
方法和 equals
方法。
arraylist线程不安全,vector线程安全
arraylist和vector的初始大小都是10.
vector:向量的大小大于其容量时,容量自动增加的量。如果容量的增量小于等于零,则每次需要增大容量时,向量的容量将增大一倍。
Arraylist默认扩充1.5倍。
JDK1.6中的源码:
// 确定ArrarList的容量。
// 若ArrayList的容量不足以容纳当前的全部元素,设置 新的容量=“(原始容量x3)/2 + 1”
public void ensureCapacity(int minCapacity) {
modCount++; // 将“修改统计数”+1
int oldCapacity = elementData.length;
if (minCapacity > oldCapacity) {
Object oldData[] = elementData;
int newCapacity = (oldCapacity * 3)/2 + 1;
if (newCapacity < minCapacity)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}
}
最新文章
- css权威指南学习笔记
- sklearn 增量学习 数据量大
- 前端之css、JavaScript和DOM
- Codeforces Round #212 (Div. 2) D. Fools and Foolproof Roads 并查集+优先队列
- Odoo下拉动作列表
- zabbix统一脚本监控方式
- 【Tomcat源码学习】-2.容器管理
- nginx负载均衡(一)
- 【Swift】ios开发中巧用 description 打印对象时,打印对象的属性
- CF451E Devu and Flowers 数论
- How to Pronounce SAY, SAYS, and SAID
- drupal smtp could not connect to smtp
- C - Ilya And The Tree Codeforces Round #430 (Div. 2)
- MyBatis3用户指南
- LOJ6342::跳一跳——题解
- Android WebView 笔记
- [Leetcode] Interger to roman 整数转成罗马数字
- barba.js 优化页面跳转用户体验
- 全局enter回车键js
- Monkey King(左偏树 可并堆)