사용자 지정 개체가있는 arraylist가 하나 있습니다.다른 요소를 업데이트하는 arraylist의 요소 집합
Object {
String price;
String discountedPrice;
int discount;
String id;
}
내가 ArrayList를에서 새로운 개체를 추가 이제까지 내가 ArrayList를 횡단하여 discountPrice 모든 요소의 가격을 설정합니다합니다.
문제 선언문 : Arraylist에 추가 된 새 개체는 이전 개체에 할인을 적용합니다. 예 : Rs.399, Rs. 499, Rs. 399가 arraylist에 추가되었습니다. 그래서 399에 할인이 추가되지 않았습니다. 499 추가시 399에 2 % 할인 적용. 그러면 399는 399-2 % = 392가됩니다. 399가 추가 된 경우 499 및 392-2 %에 2 % 할인이 적용됩니다. 먼저 모든 가격을 discountedPrice로 설정하는 일반적인 방법을 하나 추가했습니다. 그런 다음 arraylist의 크기를 확인하고 크기가 -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