배열의 모든 요소를 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);
[ 덧붙여 말하면, 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()
다른 사람들이 언급 한 옵션 도 마음에 듭니다.
Arrays.fill 함수 를 사용해 보셨습니까 ?
사용할 수 있습니다 Arrays.fill(array, -1)
.
분명히 Arrays.fill ()을 사용할 수 있습니다. 당신이 한 방식도 작동합니다.
자바 (8)를 사용하면 간단하게 사용할 수 ncopies
의 Collections
클래스 :
Object[] arrays = Collections.nCopies(size, object).stream().toArray();
귀하의 경우에는 다음과 같습니다.
Integer[] arrays = Collections.nCopies(10, Integer.valueOf(1)).stream().toArray(Integer[]::new);
.
다음 은 유사한 경우에 대한 자세한 답변입니다.
'code' 카테고리의 다른 글
DataTemplate에서 부모 DataContext에 액세스 (0) | 2020.08.20 |
---|---|
ko.applyBindings를 호출 할 때“Cannot read property 'nodeType'of null”발생 (0) | 2020.08.20 |
다른 프로필이 활성화 된 경우에도 activeByDefault 인 Maven 프로필을 활성 상태로 유지하는 방법은 무엇입니까? (0) | 2020.08.19 |
SQL Server에서 group_concat을 사용하여 쿼리를 만드는 방법 (0) | 2020.08.19 |
더 나은 점 : @SuppressLint 또는 @TargetApi? (0) | 2020.08.19 |