7) List와 Set

SOCICAL·2024년 7월 3일

android

목록 보기
6/20
post-thumbnail
  • Java 컬렉션 프레임워크는 데이터를 효율적으로 관리하고 조작할 수 있는 다양한 클래스와 인터페이스를 제공한다.
  • List와 Set은 자주 사용되는 컬렉션 유형이다.

# List

  • 순서가 있는 컬렉션이다.
  • 중복 요소를 허용한다.
  • List 인터페이스를 구현하는 클래스에는 ArrayList, LinkedList, Vector, Stack 등이 있다.

- List의 주요 특징

  • 요소의 순서가 유지된다.
  • 중복 요소를 허용한다.
  • 인덱스를 사용하여 요소에 접근할 수 있다.

- ArrayList 예제

  • ArrayList는 크기가 가변적인 배열로, 요소의 추가와 삭제가 용이하다.
import java.util.ArrayList;

public class ListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        // 요소 추가
        list.add("Apple");
        list.add("Banana");
        list.add("Apple"); // 중복 허용

        // 요소 출력
        for (String item : list) {
            System.out.println(item);
        }

        // 인덱스를 사용한 요소 접근
        System.out.println("첫 번째 요소: " + list.get(0));

        // 요소 삭제
        list.remove("Banana");
        System.out.println("삭제 후: " + list);
    }
}

Java 9이후: List.of()

  • Java 9부터는 List.of() 메서드를 사용하여 불변 리스트를 생성할 수 있다.
import java.util.List;

public class ListExample {
    public static void main(String[] args) {
        List<String> immutableList = List.of("Apple", "Banana", "Cherry");

        // 요소 출력
        for (String item : immutableList) {
            System.out.println(item);
        }

        // immutableList.add("Date"); // UnsupportedOperationException 발생
    }
}

# Set

  • 순서가 없고 중복을 허용하지 않는 컬렉션이다.
  • Set 인터페이스를 구현하는 클래스에는 HashSet, LinkedHashSet, TreeSet 등이 있다.

- Set의 주요 특징

  • 요소의 순서가 유지되지 않는다. (단, LinkedHashSetTreeSet은 예외)
  • 중복 요소를 허용하지 않는다.

- HashSet 예제

  • 해시 테이블을 사용하여 요소를 저장하므로, 빠른 검색과 삽입이 가능하다.
import java.util.HashSet;

public class SetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();

        // 요소 추가
        set.add("Apple");
        set.add("Banana");
        set.add("Apple"); // 중복은 무시됨

        // 요소 출력
        for (String item : set) {
            System.out.println(item);
        }

        // 요소 삭제
        set.remove("Banana");
        System.out.println("삭제 후: " + set);
    }
}

Java 9이후: Set.of()

  • Java 9부터는 Set.of() 메서드를 사용하여 불변 집합을 생성할 수 있다.
import java.util.Set;

public class SetExample {
    public static void main(String[] args) {
        Set<String> immutableSet = Set.of("Apple", "Banana", "Cherry");

        // 요소 출력
        for (String item : immutableSet) {
            System.out.println(item);
        }

        // immutableSet.add("Date"); // UnsupportedOperationException 발생
    }
}

# List와 Set의 차이점

자료형ListSet
순서요소의 순서를 유지요소의 순서를 유지하지 않음 (LinkedHashSetTreeSet 제외)
중복중복 요소 허용중복 요소 허용하지 않음
접근 방식인덱스를 사용한 요소 접근 가능인덱스를 사용한 접근 불가
구현 클래스ArrayList, LinkedList, VectorHashSet, LinkedHashSet, TreeSet

0개의 댓글