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.来自多个线程?