Javaの:それは2列に文字列値を比較し、両者が一致する場合は、最初の配列内のint型の値をインクリメントすることは可能ですか?

user10745934:

私は構成配列追加することによって、ArrayListのを構築したいString name, double price, int quantityさまざまなアイテムを表現します。アイテムがArrayListの中に既に存在するものと同一である追加された場合、それは増加すべきであるquantity追加されるのではなく。

私の思考プロセスは、インデックス1 2との間の配列の値が一致し、かつそれらがない場合は、第一の配列におけるインデックス3の値をインクリメントするかどうかを確認することでした。これはJavaで行うことが可能です何かか?どのようにして、リストにすでにアレイに新しい配列を比較するのでしょうか?

RPresle:

あなたはおそらく、あなたのモデルを検討し、オブジェクトを使用する必要があります。

あなたの3つの属性を含むクラスを作成します。その後Map<String, YourObject>あなたがオブジェクトを追加したいときに、直前にテストを行います

if(map.containsKey(objectName)) {
    YourObject object = map.get(objectName);
    object.setQuantity(object.getQuantity() + 1);
}

EDIT @Eugeneと協議した後、

YourObject objectToAdd = ...
Map<String, YourObject> map = new HashMap<>();
...
YourObject objectInMap = map.get(objectName);
if(objectInMap != null) {
    // increase Quantity in objectInMap 
} else {
    //Object not existing in the map, never added
    //manage initial quantity here
    map.put(objectToAdd.getName(), objectToAdd)
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=119459&siteId=1