그래서 {item, quantity} 열이있는 배열이 있다고 가정 해보십시오. SQL 테이블에서이 값을 가져온 다음 항목별로 정렬합니다.임시 변수를 사용하여 배열의 값 조작
while(rs.next()){
item = rs.getString(1);
for(int i = 0 ; i < array.size ; i++){
if(item.equals(array[i][0]){
double quantity = rs.getDouble(2);
quantity = quantity + Double.parseDouble(array[i][1]);
array[i][1] = quantity;
}
}
//add code for adding items if not found in array
}
내 질문이 배열을 반복 할 때/쓰레기를 만드는 속도가 느려질 수이 임시 변수를 사용하는 것입니다 : 나는 double 값을 조작하는 임시 변수 "수량"을 사용하고 있습니다? Java는 if 문 끝 부분에서이 변수를 올바르게 처리합니까? 나는 힙 공간에 문제가 있기 때문에 물어보고 있으며, 이것을 처리하기 위해 모든 것을 다시 쓰고 싶지는 않습니다.
내 다른 옵션은 다음과 같습니다 이전 값이 배열 물론 유지 될 때 항상 새로운 가치와 수량을 우선합니다
가능한 [루프 내부 또는 외부 변수 선언] 가능한 복제본 (http://stackoverflow.com/questions/8803674/declaring-variables-inside-or-outside-of-a-loop) – acm
A 변수 * 쓰레기를 만들지 않으며 느려지지 않을 것입니다. 값이 달리 이름이 지정되지 않았기 때문에 코드를 명확히 할 수 있습니다. 특히'quantity'라는 변수가 더 좋습니다. 제 2의 예를보세요. 무슨 일이 일어나고 있는지에 대해서는 매우 알려지지 않습니다. 주석이 도움이 될 수 있지만 이름이 명확한 변수도 마찬가지입니다. --- * 참고 : * 첫 번째 예제는'String.valueOf()'호출이 없습니다. – Andreas
"A _variable은 원시이므로 _ 쓰레기를 만들지 않습니다"라고 말하는 것이 더 정확할 수 있습니다. 객체 인 변수는 힙에 할당 된 메모리를 가비지 수집해야합니다. – mangotang