Herbert Schildt의 "Java : A Beginners Guide (5th Edition)"책을 읽고 있는데 배열을 선언하는 고유 한 방법을 계속 알아 차리고 있습니다.Java 배열 크기 초기화
여기이 연습의 화신 내 자신의 예입니다 : 이제
public int[] generateArray(int size) {
int[] x = new int[size+1];
return x;
}
int[] y = generateArray(3);
을, 어떤이 저자는 항상 크기에 +1
와 배열을 만드는하고있다. 나는 왜 그가 이것을 할 것인지 이해하지 못한다. ArrayOutOfBounds
예외를 피할 수 있습니까? 게다가, 만약 그가 1 씩 증가 시키려면 3 대신에 4를 보냅시다.
다음은이 질문의 모호성 정리하는 그의 책에서 예제 :이 책을 모르는
// A dynamic queue.
class DynQueue implements ICharQ {
private char q[];
private int putLoc, getLoc;
public DynQueue(int size) {
q = new char[size+1]; //allocate memory
putLoc = getLoc = 0;
}
}
저자에게 물어볼 필요가 있습니다. 그것은 ** 정확히 ** 귀하의 예제에서 4를 전달하고 +1을 사용하지 않는 것과 같습니다. –
@manouti oops !! –
당신이 동의하지 않는다면 왜 그의 생각을 무시하지 않습니까? 그것은 하나의 객체 참조입니다 - 4 바이트. 끔찍한 낭비가 아니야. 나는 동의한다. 나는 이렇게 쓰지 않을 것이다. – duffymo