배열을 추가 할 위치를 모른 채 배열에 요소를 추가하는 방법을 찾으려고합니다. 예 : 이 같은 것을하는 대신 ...배열의 다음 여유 공간에 요소를 추가하는 방법은 무엇입니까?
double[] myArray = new double[10];
myArray[5] = 1.0;
다음 사용 가능한 공간에 요소를 추가하고 싶습니다. 자바에서도 가능합니까? 죄송합니다. 간단한 질문인데, 저는이 언어에 익숙하지 않습니다.
배열을 추가 할 위치를 모른 채 배열에 요소를 추가하는 방법을 찾으려고합니다. 예 : 이 같은 것을하는 대신 ...배열의 다음 여유 공간에 요소를 추가하는 방법은 무엇입니까?
double[] myArray = new double[10];
myArray[5] = 1.0;
다음 사용 가능한 공간에 요소를 추가하고 싶습니다. 자바에서도 가능합니까? 죄송합니다. 간단한 질문인데, 저는이 언어에 익숙하지 않습니다.
먼저 "자유"를 정의하십시오. 첫 번째 0 값을 찾을 수 없습니다. 실제로 일 경우에 0을 실제 값으로 저장하려고합니다. 이것은 의도적으로 단순한 것을
double[] myArray = new double[10];
int nextIndex = 0;
myArray[nextIndex++] = 1234;
... etc
myArray[nextIndex++] = 1.0;
참고 :
유일한 방법은 당신이 마지막으로 삽입 위치를 추적하는 것입니다. 자동으로 을 확장하고 추가 쉽게 배열 등
당신의 더 나은 옵션이 ArrayList
처럼 컬렉션을 사용하는 것입니다의 끝을 실행 방지하지 않습니다.
null
은 분명히 "비어 있음"을 의미하는 객체 참조의 배열에 훨씬 더 의미가 있습니다. 그러나 단지 double
배열의 경우 0
은 "비어 있음"을 의미한다고 가정 해 보겠습니다. 그래서 ...
int index = -1;
for (int i=0; i<array.length; ++i) {
if (array[i] == 0) {
array[i] = 5;
index = i;
break;
}
}
그럼 당신은 설정하거나 배열이 전체 인 경우
-1
인 요소에
index
점.
배열에는 "여유 공간"이 없습니다. 원하는 경우 "마법 값"(예 : 0 또는 유형에 따라 null)을 사용하여 비어 있음을 나타낼 수 있습니다. 그런 다음이 값을 찾고 배열을 검색 할 수 있습니다
int i = Array.asList(array).indexOf(0.0);
몇 가지 경고 :
가변 개수의 요소를 포함 할 수있는 컬렉션을 원할 경우 배열을 사용하지 마십시오. 예를 들어, ArrayList
및 그 add
메서드를 사용하여 끝에 요소를 추가 할 수 있습니다.
감사합니다. 언급 한 시나리오로 인해 가능했는지 확신 할 수 없었습니다. 당신의 도움을 주셔서 감사합니다. –