2016-10-16 3 views
-2

에 의해 입력 필드 ID의 양을 늘리면 내 코드입니다 :여기에 하나 이상의

public void delivery(int id, int amount) 
{ 
    stock.add(++amount, item); 
} 

나는 제품 ID를 입력하고하여 제품의 양을 늘리는 방법 양을 지정하고있다. 메소드를 호출 할 때 현재 IndexOutOfBounds 예외가 발생합니다. 내가 뭘 잘못하고 있는거야?

+1

을 그리고 **'stock'은 무엇인가 : 그런 다음 delivery 방법 (?이 하나 더 좋은 이름이 어떻게이) 될 수

Map<Integer, Integer> stock = new HashMap<>(); // product id -> number in stock 

: 당연히 우리는 Map 인터페이스를 사용할 수 있습니다 ? –

+0

는 자신의 클래스를 구성하는 제품의 양입니다. 주식 – pcbf

+0

이라고하는 제품 유형의 ArrayList가 있습니다. 그러면'id'를 사용하여 'Product'를 찾은 다음 해당 참조를 통해 * amount *를 변경하면'stock'을 반복해야합니다. 우리에게 많은 것을주지 않았기 때문에 정확히 말하기는 어렵습니다. –

답변

0

따라서이 방법은 제품의 재고를 일정량 업데이트해야합니다. 단계별로 해보 죠.

먼저 현재 재고가있는 제품 수를 기억해야합니다. 제품은 정수 id으로 식별되며 각 제품에 대해 현재 재고를 나타내는 숫자를 연관시킵니다. **

public void delivery(int id, int amount) { 
    stock.put(id, 
       amount + stock.getOrDefault(id, 0)); 
} 
+0

감사합니다. Luke. 제품을 추가하고 제품 ID를 호출하여 재고 금액을 업데이트 한 후 제품 세부 정보를 인쇄하려면 Arraylist가 필요합니다. 내가 어떻게 이럴 수 있니? – pcbf