遗留的集合
程序员文章站
2024-03-16 11:41:46
...
1、HashTable
HashTable
类与HashMap
的作用是一样的,与
Vector
类的方法一样,HashTable
的方法也是同步的;如果对同步性或与遗留代码的兼容性没有任何要求,就应该使用
HashMap
。如果需要并发访问, 则要使用
ConcurrentHashMap
public class Hashtable<K,V>
extends Dictionary<K,V>
implements Map<K,V>, Cloneable, java.io.Serializable{
private transient Entry<?,?>[] table; //the hashTable Data
private transient int count;//the total number of entries in ths hash table
private float loadFactor; //负载因子
//构造函数
public Hashtable(int initialCapacity, float loadFactor)
public Hashtable(int initialCapacity)
public Hashtable() {}
//常用方法;在方法中加了 synchronized关键字
public synchronized int size() {
return count;
}
public synchronized boolean isEmpty() {
return count == 0;
}
public synchronized Enumeration<K> keys() {
return this.<K>getEnumeration(KEYS);
}
public boolean containsValue(Object value)
public synchronized V get
public synchronized V put(K key, V value)
}
- 这个类实现了hash 表;将
键
映射到值
- 不允许
键
或值
为空 所有存储的对象必须实现hashCode和equals方法
桶hashMap一样有两个参数:初始化桶数 和负载因子
2、枚举 Enumeration
遗留集合使用
Enumeration
接口对元素顺序进行遍历。
Enumeration接口有两个方法:hasMoreElement和nextElement
,这两个方法与Iterator接口的hasNext
方法和next
方法十分类似
静态方法Collections.enumeration
将产生一个枚举对象
,枚举集合中的元素
public static <T> Enumeration<T> enumeration(final Collection<T> c) {
return new Enumeration<T>() {//内部类
private final Iterator<T> i = c.iterator();
public boolean hasMoreElements() {
return i.hasNext();
}
public T nextElement() {
return i.next();
}
};
3、属性映射
属性映射(property map)是一个类型非常特殊的映射结构。它由下面3个特性:
- 键和值都是字符串
- 表可以保存到一个文件中,也可以从文件中加载
- 使用一个默认的辅助表
- 实现属性映射的Java平台类称为
Properties
3、栈
栈:
先进后出
public
class Stack<E> extends Vector<E> {
public Stack() {}
public E push(E item)
public synchronized E pop()
public synchronized E peek()
public boolean empty() {
return size() == 0;
}
}
Vector
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
上一篇: 图解希尔排序(Shell Sort)