반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- replace
- CMD
- js
- list
- Java
- string
- input
- 배열
- 이탈리아
- javascript
- IntelliJ
- 자바스크립트
- CSS
- 자바
- ArrayList
- map
- Visual Studio Code
- json
- html
- Array
- table
- vscode
- date
- 문자열
- 인텔리제이
- Eclipse
- 정규식
- Button
- HashMap
- 이클립스
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] Arrays.setAll()로 배열 값 채우기 본문
배열을 초기화하거나 규칙적인 값으로 채워야 할 때, 보통은 for
문을 사용합니다. 하지만 자바에서는 Arrays.setAll()
메서드를 이용해 훨씬 더 간결하게 처리할 수 있습니다.
1. Arrays.setAll()란?
- 배열의 각 인덱스에 대해 연산을 적용하여 값을 설정합니다.
- 람다 표현식이나 메서드 참조를 활용할 수 있습니다.
Arrays.fill()
과 달리, 인덱스 값을 기반으로 계산한 결과를 넣을 수 있다는 점이 큰 특징입니다.
👉 메서드 시그니처:
public static void setAll(int[] array, IntUnaryOperator generator)
array
: 값을 채울 배열generator
: 인덱스를 받아 값을 반환하는 함수형 인터페이스 (IntUnaryOperator
)
2. 기본 사용 예제
import java.util.Arrays;
public class SetAllExample1 {
public static void main(String[] args) {
int[] numbers = new int[5];
Arrays.setAll(numbers, i -> i * 2); // 인덱스를 활용
System.out.println(Arrays.toString(numbers));
}
}
실행 결과
[0, 2, 4, 6, 8]
👉 인덱스 i
를 이용해서 i * 2
값을 배열에 채웠습니다.
3. 난수로 채우기
Random
과 함께 사용하면 간단하게 랜덤 값 배열을 만들 수 있습니다.
import java.util.Arrays;
import java.util.Random;
public class SetAllExample2 {
public static void main(String[] args) {
int[] numbers = new int[5];
Random random = new Random();
Arrays.setAll(numbers, i -> random.nextInt(100)); // 0~99 사이 랜덤 값
System.out.println(Arrays.toString(numbers));
}
}
실행 결과 예시
[42, 7, 89, 23, 15]
👉 매 실행마다 다른 배열이 생성됩니다.
4. 문자열 배열에 적용하기
문자열 배열에도 동일하게 적용할 수 있습니다.
import java.util.Arrays;
public class SetAllExample3 {
public static void main(String[] args) {
String[] fruits = new String[3];
Arrays.setAll(fruits, i -> "Fruit-" + (i+1));
System.out.println(Arrays.toString(fruits));
}
}
실행 결과
[Fruit-1, Fruit-2, Fruit-3]
5. fill()과의 차이점
Arrays.fill()
: 배열 전체를 같은 값으로 채움Arrays.setAll()
: 인덱스마다 다른 계산식/규칙을 적용할 수 있음
import java.util.Arrays;
public class FillVsSetAll {
public static void main(String[] args) {
int[] fillArray = new int[5];
int[] setAllArray = new int[5];
Arrays.fill(fillArray, 7); // 전부 7로 채움
Arrays.setAll(setAllArray, i -> i + 1); // 1,2,3,4,5
System.out.println("fill: " + Arrays.toString(fillArray));
System.out.println("setAll: " + Arrays.toString(setAllArray));
}
}
실행 결과
fill: [7, 7, 7, 7, 7]
setAll: [1, 2, 3, 4, 5]
6. 정리
Arrays.setAll()
은 람다 기반 배열 초기화에 유용fill()
보다 유연하게 규칙적인 값이나 계산된 값을 넣을 수 있음- 난수 배열, 패턴 배열, 인덱스 기반 문자열 생성 등에 활용 가능
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] Arrays.deepEquals()로 다차원 배열 비교하기 (0) | 2025.08.30 |
---|---|
[Java 기초] Arrays.asList()로 배열을 리스트로 바꾸기 (0) | 2025.08.30 |
[Java 기초] Arrays.binarySearch()로 배열 검색하기 (0) | 2025.08.29 |
[Java 기초] Arrays.copyOfRange()로 배열 구간 복사하기 (1) | 2025.08.28 |
[Java 기초] Arrays.equals()로 배열 비교하기 (1) | 2025.08.28 |
Comments