Java에서 배열을 어떻게 채우나요?


85

정상적으로하는 방법을 알고 있지만 다음과 같이 작성할 수 있다고 맹세 할 수 있습니다. a [0] = {0,0,0,0}; 어떻게 그렇게하나요? Google을 사용해 보았지만 도움이되지 않았습니다.


1
당신이 물어봐야 할 진짜 질문은 어떻게이 작업을하는지입니다 : a [0] = someFunction (4, 0) ;. 따라서 선택한 "정답"은 유용하지 않습니다.
HoldOffHunger

답변:


63

선언의 일부로 수행 할 수도 있습니다.

int[] a = new int[] {0, 0, 0, 0};

11
int [] a = new int [4]는 0이 기본값이므로 동일한 작업을 수행합니다.
Zach Scrivena

5
또는 int [] a = {0, 0, 0, 0}; . 상수가 선언에서 즉시 사용되지 않는 경우에만 새로운 int []가 필요합니다.
starblue

4
이것은 큰 배열이있을 때 유용하지 않습니다. @cdmckay의 대답이 더 좋습니다.
Felipe Leão 2014

오래된 프로그래밍 규칙을 잊지 마십시오. "코드 복사 / 붙여 넣기를 발견하면 뭔가 잘못하고있는 것입니다." 0의 수 또는 기본값이 여기에 복사되어 붙여 넣어집니다.
HoldOffHunger

265

Arrays.fill 메서드를 확인하십시오 .

int[] array = new int[4];
Arrays.fill(array, 0);

21
+1 Arrays.fill () 메서드에 대해 몰랐기 때문입니다. 저는 항상 for 루프를 사용했습니다. : D
Spoike

8
@GrantGalitz 나는 실제로 그것에 대해 확신하지 못합니다. 기사 또는 smt에 대한 링크가 있습니까? System클래스와 java.util.Arrays는 달리 Java로 구현 된 클래스 이므로 소스를 살펴보면 일반 루프 와 다르지 않습니다 .
Pacerier

7
int 배열은 0으로 초기화되므로 위의 예에서는 두 번째 줄이 필요하지 않습니다.
Patrick Brinich-Langlois 2013

6
@ PatrickBrinich-Langlois : 제로화 될 의도를 나타 내기 위해 여전히 가치가있을 수 있습니다.
cdmckay 2014

16

Arrays.fill(). 이 메서드는 다양한 데이터 유형에 대해 오버로드되며 지정된 인덱스 범위 만 채우는 변형도 있습니다.


16

Java-8에서는을 사용 IntStream하여 반복하려는 숫자 스트림을 생성 한 다음 배열로 변환 할 수 있습니다. 이 접근법은 이니셜 라이저에서 사용하기에 적합한 표현식을 생성합니다.

int[] data = IntStream.generate(() -> value).limit(size).toArray();

위, size그리고 value당신이 어린 아이를 반복하고 값이 반복되고 원하는 항목의 수를 생산하는 표현이다.

데모.


10
Arrays.fill(arrayName,value);

자바에서

int arrnum[] ={5,6,9,2,10};
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}
Arrays.fill(arrnum,0);
for(int i=0;i<arrnum.length;i++){
  System.out.println(arrnum[i]+" ");
}

산출

5 6 9 2 10
0 0 0 0 0

5

new Object {}구문 을 사용하여 배열을 초기화 할 수 있습니다 .

예를 들어, 배열은 String다음 중 하나에 의해 선언 될 수 있습니다.

String[] s = new String[] {"One", "Two", "Three"};
String[] s2 = {"One", "Two", "Three"};

Primitive는 다음과 같이 유사하게 초기화 될 수도 있습니다.

int[] i = new int[] {1, 2, 3};
int[] i2 = {1, 2, 3};

또는 일부 배열 Object:

Point[] p = new Point[] {new Point(1, 1), new Point(2, 2)};

Java의 배열에 대한 모든 세부 사항은 Chapter 10 : Arrays in The Java Language Specifications, Third Edition에 설명되어 있습니다.


2

Java의 배열 요소는 생성시 기본값으로 초기화됩니다. 숫자의 경우 이는 0으로 초기화되고 참조의 경우 null이고 부울의 경우 false임을 의미합니다.

배열을 다른 것으로 채우려면 Arrays.fill ()을 사용 하거나 선언의 일부로 사용할 수 있습니다.

int[] a = new int[] {0, 0, 0, 0};

Java에는 일부 스크립팅 언어에서와 같이 산술 시리즈로 배열을 채우는 단축키가 없습니다.


-3
int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

10
사이트에 오신 것을 환영합니다! 이 답변은 단순히 코드를 흘리는 대신에 설명을 추가 할 수 있다면 개선 될 것입니다. 이 7 년 된 질문에 이미 제공된 다른 답변보다 이것이 더 나은 이유는 무엇입니까?
Mogsdad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.