私はカスタムオブジェクトを持つarraylistを1人持っています。他の要素を更新するarraylistの要素を設定する
私はArrayListの中に任意の新しいオブジェクトを追加し、これまで、私はArrayListのを横断することによりdiscountPriceへのすべての要素の価格を設定しますObject {
String price;
String discountedPrice;
int discount;
String id;
}
。
問題文: Arraylistに追加された新しいオブジェクトは、以前のオブジェクトに対して割引を適用します。例: Rs.399、Rs。 499、Rs。 399がarraylistに追加されました。 だから399には割引が加えられませんでした。 499を追加した場合、399で2%割引を適用します。 399は399-2%= 392になります。 399が追加された場合、499と392-2%で2%の割引が適用されます。 私はまず、すべての価格をdiscountedPriceに設定するという共通の方法を1つ追加しました。 次に、arraylistのサイズを確認して、サイズ-2までトラバースすると、最後に2番目に値引きが適用されます。 int diffこの要素の後に、そのオブジェクトに割引を適用する要素の数を確認するために使用します。
しかし、要素のidがすべて同じであれば、すべてのIDに適用されます。では、なぜあなたが行を更新する前にIDをチェックしません
private void calculateDiscounted() {
int size = arraylist1.size();
if(size > 1){
int index = size - 2;
for(int i = 0; i <= index; i++){
int diff = index - i ;
calculateDiscountPrice(diff, arraylist1.get(i), i);
}
}
}
private void calculateDiscountPrice(int diff, CustomObject object, int position) {
CustomObject object = object;
for(int i = 0; i <= diff; i++){
int discount = 2;
int price = Integer.valueOf(object.getDiscoutprice());
int amtDiscount = (price * discount)/100;
int discountPrice = price - amtDiscount;
object.setDiscount(amtDiscount);
object.setdiscountedPrice(String.valueOf(discountPrice));
}
arraylist1.set(position, object);
}
Beanクラスにgetterメソッドとsetterメソッドを必要としていたでしょうか? –
以前のオブジェクトに割引を適用する場合、インデックスの後の要素をチェックするのはなぜですか? – dev8080