Java List 와 Set

Devkty·2025년 8월 23일

취업도전기

목록 보기
11/32

Java List

순서가 있고 중복을 허용하는 목록입니다.

마치 음악 플레이리스트와 같습니다. 노래 순서는 있지만 여러번 재생할 수 있습니다.

List는 데이터를 넣은 순서대로 차곡차곡 저장하는, 가장 일반적인 형태의 목록입니다.

특징

  • 순서가 있음: 데이터를 추가한 순서가 유지 됩니다.
  • 인덱스가 있음: 각 데이터는 0부터 시작하는 고유한 위치 번호(인덱스)를 가집니다. 이 인덱스를 통해 특정 위치의 데이터에 바로 접근할 수 있습니다.
  • 중복을 허용함: 동일한 값을 여러 번 저장할 수 있습니다.

언제 사용하나요?

게시판 글 목록, 음악 플레이리스트처럼 순서가 중요한 경우에 사용합니다.

List 사용방법

다음과 같이 List<String> playlist = new ArrayList<>(); 로 선언하여 playlist를 생성할 수 있습니다.

  • 리스트명.add(); : 새로운 데이터를 추가할 수 있습니다.
  • 리스트명.get(인덱스); : 특정 위치의 데이터를 가져올 수 있습니다.
  • 리스트명.size(); : 리스트의 총 크기, 리스트 데이터 수를 확인할 수 있습니다.
  • 리스트명.remove(인덱스); : 리스트의 데이터를 인덱스 0부터 삭제할 수 있습니다.
import java.util.ArrayList;
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        // ArrayList 생성 (List는 인터페이스, ArrayList는 구현 클래스)
        List<String> playlist = new ArrayList<>();

        // 1. 데이터 추가: add()
        playlist.add("아이유 - 라일락");
        playlist.add("BTS - Dynamite");
        playlist.add("BLACKPINK - Lovesick Girls");
        playlist.add("BTS - Dynamite"); // 중복 추가 가능

        System.out.println("플레이리스트: " + playlist);

        // 2. 특정 위치의 데이터 가져오기: get(인덱스)
        String secondSong = playlist.get(1);
        System.out.println("두 번째 노래: " + secondSong);

        // 3. 크기 확인: size()
        System.out.println("총 곡 수: " + playlist.size());

        // 4. 데이터 삭제: remove(인덱스)
        playlist.remove(0);
        System.out.println("첫 곡 삭제 후: " + playlist);
    }
}

Java Set

‘집합’ 개념과 같습니다. 가장 큰 특징은 데이터의 중복을 절대 허용하지 않는 것입니다.

특징

  • 순서가 없음: 데이터를 추가한 순서대로 저장되지 않습니다. (단, LinkedHashSet은 순서를 유지합니다.)
  • 인덱스(Index)가 없음: 순서가 없으므로 get(i)처럼 위치로 데이터에 접근할 수 없습니다.
  • 중복을 허용하지 않음: Set의 가장 중요한 특징입니다. 이미 존재하는 값을 또 추가하려고 하면, 아무 일도 일어나지 않습니다.

언제사용하나요?

로또 번호, 이벤트 참가자 명단처럼 데이터의 유일성이 보장되어야 할 때 사용됩니다.

Set 사용방법

Set<Integer> lotteryNumbers = new HashSet<>(); 로 선언하여 lotteryNumbers를 생성할 수 있습니다.

  • Set명.add(); : 데이터를 추가합니다.
  • Set명.contains(); :특정 데이터 존재 여부 확인합니다.
  • Set명.size(); : 크기를 확인합니다.
  • Set명.remove(); : 데이터를 삭제합니다.
import java.util.HashSet;
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        // HashSet 생성 (Set은 인터페이스, HashSet은 구현 클래스)
        Set<Integer> lotteryNumbers = new HashSet<>();

        // 1. 데이터 추가: add()
        lotteryNumbers.add(45);
        lotteryNumbers.add(12);
        lotteryNumbers.add(3);
        lotteryNumbers.add(12); // 중복 추가 시도 -> 무시됨

        System.out.println("로또 번호: " + lotteryNumbers);

        // 2. 특정 데이터 존재 여부 확인: contains()
        boolean hasThree = lotteryNumbers.contains(3);
        System.out.println("3번 공이 있나요? " + hasThree);

        // 3. 크기 확인: size()
        System.out.println("총 번호 개수: " + lotteryNumbers.size());

        // 4. 데이터 삭제: remove(값)
        lotteryNumbers.remove(45);
        System.out.println("45번 공 제거 후: " + lotteryNumbers);
    }
}
profile
모든걸 기록하며 성장하고 싶은 개발자입니다. 현재 크래프톤 정글 8기를 수료하고 구직활동 중입니다.

0개의 댓글