欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

遗留的集合

程序员文章站 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
{
相关标签: Java基础整理

上一篇: 图解希尔排序(Shell Sort)

下一篇: