반응형
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 |
31 |
Tags
- string
- table
- CMD
- 문자열
- Eclipse
- 정규식
- Array
- 이탈리아
- windows
- Java
- 이클립스
- 배열
- Button
- 테이블
- javascript
- IntelliJ
- CSS
- json
- 자바스크립트
- 인텔리제이
- ArrayList
- js
- Visual Studio Code
- input
- list
- vscode
- html
- 자바
- Maven
- date
Archives
- Today
- Total
어제 오늘 내일
[Java 기초] 배열 안에 리스트(List) 담기 본문
자바(Java)에서 데이터를 저장할 때 보통 배열(Array)이나 ArrayList를 사용합니다.
그런데 상황에 따라 **배열 안에 여러 개의 리스트(List)**를 담아야 할 때가 있습니다.
예를 들어,
- 반(학급)별 학생 명단을 저장할 때
- 카테고리별 상품 목록을 저장할 때
- 행렬처럼 정해진 행 개수는 있지만, 열 개수는 유동적인 구조가 필요할 때
이럴 때는 배열 안에 리스트를 담는 방식을 사용할 수 있습니다.
1. 기본 구조
리스트(List)는 참조 타입이므로 배열에 담을 수 있습니다.
즉, List<String>[] 또는 ArrayList<String>[] 형태로 선언하면 됩니다.
import java.util.*;
public class ArrayInsideListExample1 {
public static void main(String[] args) {
// 배열 안에 ArrayList를 담기
List<String>[] groups = new ArrayList[3];
// 각 배열 요소에 새로운 리스트 할당
groups[0] = new ArrayList<>();
groups[1] = new ArrayList<>();
groups[2] = new ArrayList<>();
// 값 추가
groups[0].add("홍길동");
groups[0].add("김철수");
groups[1].add("이영희");
groups[2].add("박영수");
groups[2].add("최민수");
groups[2].add("한지민");
// 출력
System.out.println(Arrays.toString(groups));
}
}
실행 결과
[[홍길동, 김철수], [이영희], [박영수, 최민수, 한지민]]
👉 배열의 크기(행 개수)는 고정되지만, 각 리스트의 크기(열 개수)는 자유롭게 변함을 알 수 있습니다.
2. 반복문으로 초기화하기
보통은 for문을 사용해서 배열 안의 리스트를 초기화합니다.
import java.util.*;
public class ArrayInsideListExample2 {
public static void main(String[] args) {
int n = 3; // 배열 크기
List<Integer>[] numbers = new ArrayList[n];
// 초기화
for (int i = 0; i < n; i++) {
numbers[i] = new ArrayList<>();
}
// 값 넣기
numbers[0].add(1);
numbers[0].add(2);
numbers[1].add(3);
numbers[2].add(4);
numbers[2].add(5);
numbers[2].add(6);
// 출력
for (int i = 0; i < n; i++) {
System.out.println("리스트 " + i + ": " + numbers[i]);
}
}
}
실행 결과
리스트 0: [1, 2]
리스트 1: [3]
리스트 2: [4, 5, 6]
3. 배열 안의 리스트 vs 리스트 안의 리스트
많은 입문자들이 헷갈리는 부분이 있습니다.
- 리스트 안에 리스트 → List<List<T>> (자유롭게 크기 늘어남 → 2차원 구조에 자주 사용)
- 배열 안에 리스트 → List<T>[] (행 개수는 고정, 열 개수만 유동적)
👉 즉,
- “반(클래스) 개수는 3개로 고정, 학생 수는 반마다 다름” → 배열 안에 리스트
- “반 개수도 유동적이고, 학생 수도 유동적” → 리스트 안에 리스트
4. 문자열 예제
문자열 데이터도 동일하게 다룰 수 있습니다.
import java.util.*;
public class ArrayInsideListExample3 {
public static void main(String[] args) {
List<String>[] categories = new ArrayList[2];
categories[0] = new ArrayList<>(Arrays.asList("노트북", "모니터"));
categories[1] = new ArrayList<>(Arrays.asList("핸드폰", "태블릿", "스마트워치"));
System.out.println(Arrays.toString(categories));
}
}
실행 결과
[[노트북, 모니터], [핸드폰, 태블릿, 스마트워치]]
5. 정리
- List<T>[] 형태로 배열 안에 리스트를 담을 수 있다.
- 배열 크기는 고정, 리스트 크기는 가변적이다.
- for문으로 초기화하면 편리하다.
- 고정된 행, 유동적인 열 구조에 적합하다.
반응형
'IT > Java' 카테고리의 다른 글
[Java 기초] 리스트 안에 리스트 넣기 (0) | 2025.08.24 |
---|---|
[Java StringBuilder] trimToSize() – 버퍼 최적화하기 (0) | 2025.08.24 |
[Java String] String.join() – 문자열 합치기 간단하게 (0) | 2025.08.23 |
[Java] ArrayList로 2차원 배열 만들기, 활용하기 (0) | 2025.08.23 |
[Java String] String.split() – 문자열을 원하는 기준으로 나누기 (0) | 2025.08.22 |
Comments