アプリ版:「スタンプのみでお礼する」機能のリリースについて

JAVAでArrayListを使った多次元配列の要素を比較方法で困っています。

下記のコードで、アイテム、数量、金額をランダムに10個配列に追加しています。

private ArrayList<Item> list;

public ArrayList<Item> getItems1() {
return list;
}

public void setItems(ArrayList<Item> items) {
getItems();
}

public Inventory() {
list = new ArrayList<Item>();
}

public void getItems(){
for(int i =0; i<10; i++){
int theItemType = (int)(Math.random()*6+1);
int theQut = (int)(Math.random()*20+1);
int thePrice = (int)(Math.random()*40+101)/20;

list.add(new Item(theItemType, theQut, thePrice));

}
}

public String getItemName() {

if(itemType == 1){
return "シャツ";
}
if(itemType == 2){
return "スカート";
}
if(itemType == 3){
return "ズボン";
}
if(itemType == 4){
return "ネクタイ";
}
if(itemType == 5){
return "靴";
}
if(itemType == 6){
return "靴下";
}
return null;
}

public String toString() {

return getItemName() + " , " + getQut() + " " + getPrice();
}

同じアイテム、金額の場合は、数量を合計して表示させたいです。例えば、配列の要素が下記のような場合、1つ目と2つ目の要素は同じアイテム、金額になるので、数量を20として表示させたいのですが、どのように比較していいのかわかりません。どなたか教えてください。よろしくお願いします。

靴下 , 4, 5
靴下 , 16, 5
ネクタイ , 3, 5
ネクタイ , 16, 6
ネクタイ , 2, 6
ズボン , 16, 6
ズボン , 15, 6
スカート , 3, 6
靴 , 17, 7
シャツ , 17, 7

A 回答 (1件)

こんな感じではどうでしょうか。


http://ideone.com/EZDRr
    • good
    • 0
この回答へのお礼

yamada_gさん、ご回答ありがとうございました。
お陰さまで問題が解決しました。
TreeMapを使用したことがありませんでしたので、TreeMapについてもう少し勉強しようと思います。大変参考になりました。

お礼日時:2011/03/28 12:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!