[java] 배열의 모든 요소를 ​​Java의 특정 값으로 초기화하는 방법

에서 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);

[ 덧붙여 말하면, memsetC 또는 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()다른 사람들이 언급 한 옵션 도 마음에 듭니다.


답변


답변

Arrays.fill 함수 를 사용해 보셨습니까 ?


답변

사용할 수 있습니다 Arrays.fill(array, -1).