Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
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
more
Archives
Today
Total
관리 메뉴

bonggyulim 님의 블로그

Java 컬렉션 주요 함수 본문

Language & Framework/Java

Java 컬렉션 주요 함수

bonggyulim 2025. 9. 12. 15:42

배열 관련 함수

1. 배열 선언 & 초기화

int[] arr = new int[5];               // 크기 5짜리 int 배열 (0으로 초기화)
int[] arr2 = {1, 2, 3, 4, 5};         // 리터럴 초기화
String[] names = new String[]{"a","b","c"};
arr2.length;		// 5

2. java.util.Arrays 주요 함수들

(1) 출력/문자열 변환

System.out.println(Arrays.toString(arr));   // [1, 2, 3, 4, 5]
System.out.println(Arrays.deepToString(twoD)); // 2차원 배열 [[1,2],[3,4]]

(2) 정렬

Arrays.sort(arr);                   		// 오름차순 정렬
Arrays.sort(arr, 2, 5);             		// 부분 정렬 (index 2~4)
Arrays.sort(strArr, Comparator.reverseOrder()); // 내림차순 (객체 배열)

// 오름차순 정렬 후
for (int i = 0; i < arr.length / 2; i++) {	// 기본형 내림차순
    int tmp = arr[i];
    arr[i] = arr[mats.length - 1 - i];
    arr[arr.length - 1 - i] = tmp;
}

(3) 이진 탐색

int idx = Arrays.binarySearch(arr, 3);  // arr이 정렬된 상태여야 함

(4) 복사

int[] copy = Arrays.copyOf(arr, arr.length);    // 전체 복사
int[] part = Arrays.copyOfRange(arr, 1, 4);     // index 1~3 복사

(5) 채우기

Arrays.fill(arr, 7);              // arr 전체를 7로 채움
Arrays.fill(arr, 2, 4, 9);        // index 2~3을 9로 채움

(6) 비교

boolean eq = Arrays.equals(arr1, arr2);         // 같은 내용?
boolean eq2d = Arrays.deepEquals(twoD1, twoD2); // 2차원 배열 비교

3. Stream을 활용한 배열 처리

int sum = Arrays.stream(arr).sum();               // 합계
int max = Arrays.stream(arr).max().getAsInt();    // 최대값
int[] squared = Arrays.stream(arr).map(x -> x*x).toArray(); // 제곱 배열

4. 다차원 배열

int[][] grid = new int[3][4];
grid[0][1] = 5;
System.out.println(Arrays.deepToString(grid)); // [[0,5,0,0],[0,0,0,0],[0,0,0,0]]

컬렉션 관련 함수

1. 공통 (Collections 유틸)

Collections.sort(list);                           // 오름차순 정렬
Collections.sort(list, Comparator.reverseOrder()); // 내림차순
Collections.reverse(list);                        // 리스트 뒤집기
Collections.shuffle(list);                        // 무작위 섞기
Collections.max(list);                            // 최대값
Collections.min(list);                            // 최소값
Collections.frequency(list, "a");                 // 특정 원소 개수 세기
Collections.fill(list, 0);                        // 모든 원소 0으로 채우기
Collections.copy(dest, src);                      // 복사 (주의: 크기 같아야 함)

2. List 관련 (ArrayList, LinkedList)

List<Integer> list = new ArrayList<>();

list.add(10);            // 끝에 추가
list.add(1, 20);         // index 1에 삽입
list.get(0);             // index 0 원소 반환
list.set(0, 99);         // index 0 원소 수정
list.remove(1);          // index 1 원소 삭제
list.remove(Integer.valueOf(20)); // 값으로 삭제
list.contains(99);       // 포함 여부
list.size();             // 길이
list.isEmpty();          // 비어있는지
list.clear();            // 전체 삭제
list.subList(1, 3);      // 부분 리스트 (1 <= idx < 3)

3. Set 관련 (HashSet, TreeSet)

Set<String> set = new HashSet<>();

set.add("apple");         // 추가
set.add("banana");
set.remove("apple");      // 삭제
set.contains("banana");   // 포함 여부
set.size();               // 크기
set.isEmpty();            // 비어있는지
set.clear();              // 초기화

// 집합 연산
Set<Integer> a = new HashSet<>(Arrays.asList(1,2,3));
Set<Integer> b = new HashSet<>(Arrays.asList(3,4,5));

Set<Integer> union = new HashSet<>(a); union.addAll(b);        // 합집합
Set<Integer> inter = new HashSet<>(a); inter.retainAll(b);     // 교집합
Set<Integer> diff = new HashSet<>(a); diff.removeAll(b);       // 차집합

4. Map 관련 (HashMap, TreeMap)

Map<String, Integer> map = new HashMap<>();

map.put("a", 1);               // 삽입
map.put("b", 2);
map.get("a");                  // 값 반환 (없으면 null)
map.getOrDefault("c", 0);      // 값 반환 (없으면 기본값)
map.containsKey("a");          // 키 존재 여부
map.containsValue(2);          // 값 존재 여부
map.remove("b");               // 삭제
map.size();                    // 크기
map.clear();                   // 초기화

// 순회
for (String key : map.keySet()) {
    System.out.println(key + " -> " + map.get(key));
}
for (Map.Entry<String,Integer> e : map.entrySet()) {
    System.out.println(e.getKey() + " " + e.getValue());
}

5. Queue / Deque (LinkedList, ArrayDeque)

Queue<Integer> q = new LinkedList<>();
q.add(1); q.offer(2);      // 삽입
q.poll();                  // 앞에서 꺼내기 (없으면 null)
q.remove();                // 앞에서 꺼내기 (없으면 예외)
q.peek();                  // 맨 앞 원소 보기
q.isEmpty();               // 비었는지

Deque<Integer> dq = new ArrayDeque<>();
dq.addFirst(1); dq.addLast(2);   // 앞/뒤 삽입
dq.pollFirst(); dq.pollLast();   // 앞/뒤 꺼내기
dq.peekFirst(); dq.peekLast();   // 앞/뒤 확인

6. Stack

Stack<Integer> st = new Stack<>();
st.push(10);             // 넣기
st.pop();                // 꺼내기
st.peek();               // 맨 위 확인
st.isEmpty();            // 비었는지

 

'Language & Framework > Java' 카테고리의 다른 글

Java 수학 관련 함수  (0) 2025.09.15
Java 문자열 관련 함수  (0) 2025.09.12
Java 기초 문법  (0) 2025.07.23