에서 C/C++
우리는이 memset()
내 소원을 성취하지만,에서 수 기능이 Java
어떻게 특정 값으로 모든 요소를 초기화 할 수 있습니까? 를 작성할 때마다 int[] array=new int[10];
모든 요소가 0 인 크기 10의 배열을 초기화합니다. 내 배열 중 하나에 대해이 초기화 정수를 변경하고 싶습니다. 즉, 모든 요소가 같은 배열을 초기화하고 싶습니다 -1
. 그렇지 않으면 for
초기화 직후 0
에 인덱스 에서 인덱스 에 이르는 루프 를 넣어야하며 size-1
해당 루프 내부에 요소를 할당합니다 -1
. 아래는 더 많은 이해를위한 코드입니다.
int[] array = new int[10];
for (int i = 0; i < size; i++) {
array[i] = -1;
}
내가 맞습니까? 같은 다른 방법이 있습니까?
답변
기본 유형 인 경우 다음을 사용할 수 있습니다 Arrays.fill()
.
Arrays.fill(array, -1);
[ 덧붙여 말하면, memset
C 또는 C ++에서 char
. ]
답변
또한
int[] array = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
답변
Java 8 스트림에서도 가능합니다.
int[] a = IntStream.generate(() -> value).limit(count).toArray();
하지만 작업을 수행하는 가장 효율적인 방법은 아닐 것입니다.
답변
짧으면 이렇게 할 수 있습니다.
int[] array = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
그러나 그것은 단지 몇 가지 이상으로 나빠집니다.
for
루프 가 더 쉽습니다 .
int[] myArray = new int[10];
for (int i = 0; i < array.length; i++)
myArray[i] = -1;
편집 : Arrays.fill()
다른 사람들이 언급 한 옵션 도 마음에 듭니다.