java - 哈希表替代品

标签 java hashtable

除了使用哈希表还有其他选择吗? 我有这段代码,想知道我是否可以在不使用它的情况下做到这一点。我所拥有的正在寻找工作,但有人告诉我不要使用它。感谢您的帮助。

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)。

关于java - 哈希表替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915560/

相关文章:

c - 拼写器适用于某些单词,不适用于其他单词。不知道问题出在哪里

c# - 从哈希表中读取 SortedList

java - 如何从任何java结构的SQL表中一次性检索分层项目进行比较?

java - 将 RawSql 结果映射到 Java Ebean 中的对象

powershell - 格式化嵌套的哈希表

algorithm - 关于散列 - 二次探测证明

java - 如何使用 StaX 获取特定 XML 标记的值

java - 比较器获取链接列表中的最大值,并从比较中排除链接列表的第一个元素

java - 在源代码中隐藏密码内容

c - C中Hashtable的插入函数