지삐띠니야 메서드 알려줘

2025년 05월·자바

리스트 메서드 알려줘

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

// 리스트 끝에 요소 추가
list.add(10);                              // [10]
list.add(20);                              // [10, 20]
// 특정 인덱스에 요소 삽입
list.add(1, 15);                           // [10, 15, 20]

// 인덱스 위치 요소 제거
list.remove(0);                            // [15, 20]
// 해당 값과 같은 첫 번째 요소 제거
list.remove(Integer.valueOf(20));          // [15]

list.add(30);                              // [15, 30]
list.add(15);                              // [15, 30, 15]

// 특정 위치의 요소 반환
System.out.println(list.get(1));           // 30
// 특정 위치의 요소 변경
System.out.println(list.set(1, 20));       // [15, 20, 15]
// 리스트에 특정 값이 있는지 확인
System.out.println(list.contains(15));     // true
// 처음 나타나는 위치 반환 (없으면 -1)
System.out.println(list.indexOf(15));      // 0
// 마지막 나타나는 위치 반환
System.out.println(list.lastIndexOf(15));  // 2

// 리스트 길이 반환
System.out.println(list.size());           // 3
// 비어있는지 확인
System.out.println(list.isEmpty());        // false

// 여러 개 한꺼번에 추가
list.addAll(Arrays.asList(100, 200));      // [15, 20, 15, 100, 200]
// 특정 값 전체 제거
list.removeAll(Arrays.asList(15));         // [20, 100, 200]
// 특정 값 남기고 나머지 제거
list.retainAll(Arrays.asList(100, 200));   // [100, 200]
// 전체 요소 삭제
list.clear();                              // []

list.addAll(Arrays.asList(5, 2, 8, 1));

// 오름차순 정렬
Collections.sort(list);                    // [1, 2, 5, 8]
// 내림차순 정렬
Collections.sort(list, Collections.reverseOrder());  // [8, 5, 2, 1]

 

덱 메서드 알려줘

역할 주요 메서드
스택 push, pop, peek
큐 offer, poll, peek
덱 addFirst, addLast, removeFirst, removeLast, peekFirst, peekLast
// 스택처럼
Deque<String> stack = new ArrayDeque<>();

stack.push("Sweet");   // [Sweet]
stack.push("Potato");  // [Potato, Sweet]
stack.push("Chips");   // [Chips, Potato, Sweet]
System.out.println(stack.pop());   // Chips ... [Potato, Sweet]
System.out.println(stack.peek());  // Potato <- [Potato, Sweet]

// 큐처럼
Deque<String> queue = new ArrayDeque<>();

queue.offer("Sweet");   // [Sweet]
queue.offer("Potato");  // [Sweet, Potato]
queue.offer("Chips");   // [Sweet, Potato, Chips]
System.out.println(queue.poll());  // Sweet ... [Potato, Chips]
System.out.println(queue.peek());  // Potato <- [Potato, Chips]

// 덱처럼
Deque<String> deque = new ArrayDeque<>();

deque.add("Sweet");       // [Sweet]
deque.add("Potato");      // [Sweet, Potato]
deque.addFirst("Chips");  // [Chips, Sweet, Potato]
deque.addLast("Sweet");   // [Chips, Sweet, Potato, Sweet]
System.out.println(deque.removeFirst());  // Chips ... [Sweet, Potato, Sweet]
System.out.println(deque.removeLast());   // Sweet ... [Sweet, Potato]
System.out.println(deque.peekFirst());    // Sweet <- [Sweet, Potato]
System.out.println(deque.peekLast());     // Potato <- [Sweet, Potato]

// 기타 메서드
System.out.println(deque.contains("Sweet"));  // true
System.out.println(deque.size());             // 2
System.out.println(deque.isEmpty());          // false
예외 반환 값 있음
add 계열 + push는 공간 부족 시 예외 발생 offer 계열은 공간 부족 시 false 반환
remove 계열 + pop은 비어 있을 때 예외 발생 poll 계열은 비어 있을 때 null 반환
get 계열은 비어있을 때 예외 발생 peek 계열은 비어 있을 때 null 반환

 

우선순위 큐 메서드 알려줘

  • 숫자는 작은 수가 먼저(오름차순)
  • 문자열은 알파벳 빠른 게 문저(사전 순)
// 정수 최소 힙
PriorityQueue<Integer> pq = new PriorityQueue<>();

pq.offer(5);  // [5]
pq.offer(3);  // [3, 5]
pq.offer(7);  // [3, 5, 7]
System.out.println(pq.poll());  // 3 ... [5, 7]
System.out.println(pq.peek()); // 5 <- [5, 7]

// 정수 최대 힙
PriorityQueue<Integer> maxPq = new PriorityQueue<>(Collections.reverseOrder());

// 문자열 최소 힙
PriorityQueue<String> strPq = new PriorityQueue<>();

pq.offer("banana");  // [banana]
pq.offer("apple");   // [apple, banana]
pq.offer("cherry");  // [apple, banana, cherry]
System.out.println(pq.poll());  // apple ... [banana, cherry]
System.out.println(pq.peek());  // banana <- [banana, cherry]

// 문자열 최대 힙
PriorityQueue<String> maxStrPq = new PriorityQueue<>(Collections.reverseOrder());

// 기타 메서드
System.out.println(maxStrPq.contains("cherry"));  // true
System.out.println(maxStrPq.size());              // 2
System.out.println(maxStrPq.isEmpty());           // false

'자바' 카테고리의 다른 글

김영한의 자바 입문에서 배운 내용 정리  (0) 2025.05.02
프로그래머스 코딩 기초 트레이닝 🔥 리스트(배열)  (1) 2025.05.02
프로그래머스 코딩 기초 트레이닝 🔥 조건문 / 반복문  (0) 2025.05.01
프로그래머스 코딩 기초 트레이닝 🔥 출력 / 연산 / 문자열  (0) 2025.04.30
프로그래머스 코딩테스트 입문 60%  (0) 2025.04.27
'자바' 카테고리의 다른 글
  • 김영한의 자바 입문에서 배운 내용 정리
  • 프로그래머스 코딩 기초 트레이닝 🔥 리스트(배열)
  • 프로그래머스 코딩 기초 트레이닝 🔥 조건문 / 반복문
  • 프로그래머스 코딩 기초 트레이닝 🔥 출력 / 연산 / 문자열
토토이
토토이
토토이 님의 블로그 입니다.
  • 토토이
    토토이 님의 블로그
    토토이
    • 분류 전체보기 (18)
      • KT 에이블스쿨 (5)
      • 복습 (1)
      • 자바 (11)
      • 뻐꿈 (0)
  • 태그

    AICE
    java
    스택
    에이블스쿨
    인프런
    자격증
    자바
    취준
    코딩테스트
    코테
    프로그래머스
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
  • hELLO· Designed By정상우.v4.10.3
토토이
지삐띠니야 메서드 알려줘
상단으로

티스토리툴바