我有一个带有自定义对象的arraylist。
Object {
String price;
String discountedPrice;
int discount;
String id;
}
当我在Arraylist中添加任何新对象时,我会通过遍历arraylist将所有元素的价格设置为discountPrice。
问题陈述: 每当Arraylist中添加的新对象对先前对象应用折扣时。 例如Rs.399,Rs。 499,卢比。 399添加了arraylist。 所以当399添加没有折扣。 当499添加399适用2%折扣。 然后399成为399-2%= 392。 然后当399添加499和392-2%时适用2%折扣。 我添加了一种常用方法,首先将所有价格设置为discountedPrice。 然后检查arraylist的大小,遍历大小-2表示应用折扣的第二个最后一个元素。 int diff用于检查此元素之后有多少元素对该对象应用折扣。
但是,只要元素的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);
}
答案 0 :(得分:0)
希望这会有所帮助,但您应该在Bean类中使用getter和setter方法
void addNewObject(Custom object, ArrayList<CustomObject> al){
for(int i = 0;i<al.size();i++){
CustomObject c=al.get(i);
int price=c.getPrice();
int discount=0.02*price;
c.setDiscount(discount);
c.setDiscountedPrice(price-discount);
al.set(i,c);
}
al.add(object);
}