Java 哈希表替代方案

Java 哈希表替代方案,java,hashtable,Java,Hashtable,除了使用哈希表,还有其他选择吗? 我有这个代码,不知道我是否可以不用它。我一直在努力寻找,但有些人告诉我不要使用它。感谢您的帮助 import java.util.Hashtable; import java.util.Enumeration; public class Cart { public Hashtable items = new Hashtable(); public Enumeration getEnumeration() { return items.elements(

除了使用哈希表,还有其他选择吗? 我有这个代码,不知道我是否可以不用它。我一直在努力寻找,但有些人告诉我不要使用它。感谢您的帮助

import java.util.Hashtable;
import java.util.Enumeration;

public class Cart
{ 

public Hashtable items = new Hashtable();


public Enumeration getEnumeration()
{
return items.elements();
}


public void addItem(String itemId,String desc, float price, int quantity)
{
String[] item = {itemId, desc, Float.toString(price),
Integer.toString(quantity)};

if (items.containsKey(itemId))
{

  String[] tmpItem = (String[])items.get(itemId);
  int tmpQuant = Integer.parseInt(tmpItem[3]);
  quantity += tmpQuant;
  tmpItem[3] = Integer.toString(quantity);
}
else {

  items.put(itemId, item);
 }
}


public float getTotalCost() {

Enumeration e = items.elements();
String[] tmpItem;
float totalCost = 0.00f;

while (e.hasMoreElements()) {

  tmpItem = (String[])e.nextElement();
  totalCost += (Integer.parseInt(tmpItem[3]) *
    Float.parseFloat(tmpItem[2]));
}
return totalCost;
}

}

Hashtable
已同步,这可能会导致性能问题,因此建议您使用类似于
HashMap
或实现
Map
的任何其他适当类


实际上,如果您将代码更改为使用
Map
,则不会出现任何问题(实际上
Hashmap
本身实现了
Map
)。

如果您想查找
itemId
的项目,由于访问时间的原因,最好的数据结构应该是
Hashmap

但是如果根据
itemId
对项目进行排序,则可以使用其他数据结构,如
arraylist
array
,甚至可以使用四个公共变量创建自己的类。

但是我要说的是,搜索的一个好处是最好的DS应该是
hashMap

可能是一个
Map
支持的
ConcurrentHashMap
。您的代码当前应该运行吗?i、 e.来自多个线程?