자바 21 전에는 List에서 마지막 원소를 구하려면 list.get(list.size() -1);
로 구했어야 했다.
자바 21에서는 이 번잡함이 사라진다.
Sequenced Collection을 통해 addFirst()
, addLast()
, getFirst()
, getLast()
, removeFirst()
, removeLast()
, reversed()
메서드 제공
SequencedSet 또한 SequencedCollection 상속
reversed()
메서드 리턴 타입만 SequencedSet으로 변경addFirst()
, addLast()
제공 x)SequencedMap
reversed() : 순서만 반대로 제공하는 컬렉션에 대한 뷰
⇒ 첫번째, 마지막 원소 접근을 명시적으로 할 수 있게 되어 인덱스 사용하는 번잡함이 사라짐
instanceof 패턴 변수 사용 가능. (자바 16)
if (obj instanceof Name n) { // 패턴 변수
n.last()
}
자바 21에서는 레코드 패턴이 추가됨.
switch에 null처리가 가능해짐
switch에서 패턴 매칭 가능하게 됨.
switch (obj) {
case null -> System.out.println("null");
case Integer i -> System.out.println("Integer");
case String s -> System.out.println("String");
case Pair(String s, Integer i) -> System.out.println("Pair"); // record pattern matching
}
⇒ 코드가 간결해진다.
주의점 : switch식은 모든 경우를 다뤄야 한다.
도입한 이유 : IO 중심 작업에서 처리량(성능)을 늘리기 위함.