code

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

codestyles 2020. 8. 20. 18:46
반응형

배열의 모든 요소를 ​​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()다른 사람들이 언급 한 옵션 도 마음에 듭니다.


java.util.Arrays.fill ()


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


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


분명히 Arrays.fill ()을 사용할 수 있습니다. 당신이 한 방식도 작동합니다.


자바 (8)를 사용하면 간단하게 사용할 수 ncopiesCollections클래스 :

Object[] arrays = Collections.nCopies(size, object).stream().toArray();

귀하의 경우에는 다음과 같습니다.

Integer[] arrays = Collections.nCopies(10, Integer.valueOf(1)).stream().toArray(Integer[]::new);
.

다음 은 유사한 경우에 대한 자세한 답변입니다.

참고 URL : https://stackoverflow.com/questions/10078867/how-to-initialize-all-the-elements-of-an-array-to-any-specific-value-in-java

반응형