1

ハッシュ テーブルの使用に代わるものはありますか? 私はこのコードを持っていて、それを使わずにやり遂げることができるかどうか疑問に思っていました. 私が持っているのは作業中の検索ですが、一部の人から使用しないように言われています。どんな助けでも大歓迎です。

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;
}

}
4

2 に答える 2

2

Hashtableは同期されており、パフォーマンスの問題を引き起こす可能性があります。そのため、HashMapなどを実装する適切なクラスを使用することをお勧めしますMap

実際、コードを a を使用するように変更した場合、Map市長の問題は発生しません (実際には、Hashmapそれ自体が を実装していますMap)。

于 2013-07-29T03:22:06.223 に答える
1

最適なデータ構造を持つアイテムを見つけたい場合は、アクセス時間のためです。 ただし、アイテムがに従ってソートされている場合は、他のデータ構造を使用したり、4 つのパブリック変数を使用して独自のクラスを作成したりすることもできます。 しかし、最高の DSを検索するメリットはitemIdHashMap
itemIdarraylistarray
hashMap

于 2013-07-29T03:28:15.653 に答える