Arrays.asList() 팩토리 메서드를 이용하여 요소를 간단하게 추가할 수 있다.
List<String> friends = Arrays.asList("Raphael", "Olivia", "Thibaut");
고정 크기의 리스트를 만들었기 때문에 요소를 갱신할 수는 있지만 새로운 요소를 추가하거나 요소를 삭제할 순 없다. 새로운 요소를 추가하면 UnsupportedOperationException이 발생한다.
friends.set(0, "Richard"); // 갱신
friends.add("Thibaut"); // 추가 -> 에러
리스트를 인수로 받는 HashSet 생성자를 이용해보자.
Set<String> friends = new HashSet<>(Arrays.asList("Raphael", "Olivia", "Thibaut"));
// 스트림 사용
Set<String> friends
= Stream.of("Raphael", "Olivia", "Thibaut")
.collect(Collectors.toSet());
하지만 두 방법 모두 내부적으로 불필요한 객체 할당을 필요로 한다.
List.of 팩토리 메서드를 이용해서 간단하게 리스트를 만든 후, 해당 리스트에 요소를 추가하려하면 Exception이 발생한다. 이는 변경할 수 없는 리스트가 만들어졌기 때문이다. 갱신도 마찬가지이다.
Collectors.toList() 컬렉터로 스트림을 리스트로 바꿀 수 있다.
집합은 오직 고유의 요소만 포함할 수 있다.
Set<String> friends = Set.of("Raphael", "Olivia", "Thibaut");