TIL 240617

인자약·2024년 6월 17일

TIL

목록 보기
10/14

13.4 제한된 타입 파라미터

public <T extends 상위타입> 리턴타입 메소드(매개변수) {}

모든 타입으로 대체할 수 없고, 특정 타입과 자식 또는 구현 관계에 있는 타입만 대체할 수 있는 타입 파라미터
상위 타입은 클래스뿐만 아니라 인터페이스도 가능

13.5 와일드카드 타입 파라미터

제네릭 타입을 매개값이나 리턴 타입으로 사용할 때 타입 파라미터로 ?(와이드카드)를 사용할 수 있다. ?는 범위에 있는 모든 타입으로 대체할 수 있다는 표시

리턴타입 메소드명(제네릭타입<? extends Student> 변수) {}
리턴타입 메소드명(제네릭타입<? super Worker> 변수) {}
리턴타입 메소드명(제네릭타입<?> 변수) {}

15.2 List 컬렉션

boolean add(E e) - 주어진 객체를 맨 끝에 추가
set(int index, E element) - 주어진 인덱스의 객체를 새로운 객체로 바꿈

ArrayList

ArrayList에 객체를 추가하면 내부 배열에 객체가 저장. 일반 배열과의 차이점은 제한 없이 객체를 추가 가능.
⭐️ 빈번한 객체 삭제와 삽입이 일어나는 곳에선 바람직하지 않음

LinkedList

인접 객체를 체인처럼 연결해서 관리. 빈번한 객체 삭제와 삽입이 일어나는 곳에서 ArrayList보다 좋은 성능 발휘

15.3 Set 컬렉션

boolean add(E e) - 주어진 객체를 성공적으로 저장하면 true를 리턴하고 중복 객체면 false를 리턴
⭐️boolean remove(Object o) - 주어진 객체를 삭제

HashSet

⭐️다른 객체라도 hashCode() 메소드의 리턴값이 같고, equals() 메소드가 true를 리턴하면 동일한 객체라고 판단하고 중복 저장하지 않는다.

15.4 Map 컬렉션

키는 중복 저장할 수 없지만 값은 중복 저장 가능
V put(K key, V value) - 주어진 키와 값을 추가, 저장이 되면 값을 리턴
⭐️V get(Object key) - 주어진 키의 값을 리턴
⭐️boolean isEmpty() - 컬렉션이 비어있는지 여부
⭐️Set keySet() - 모든 키를 Set 객체에 담아서 리턴

15.6 LIFO와 FIFO 컬렉션

스택(LIFO) push/pop
큐(FIFO) offer/poll

15.8 수정할 수 없는 컬렉션

수정할 수 없는(unmodifiable) 컬렉션이란 요소를 추가, 삭제할 수 없는 컬렉션을 말한다. 컬렉션 생성 시 저장된 요소를 변경하고 싶지 않을 때 유용
1️⃣ List, Set, Map 인터페이스의 정적 메소드인 of()로 생성
2️⃣ List, Set, Map 인터페이스의 정적 메소드인 copyOf()로 생성
3️⃣ 배열로부터 수정할 수 없는 List 컬렉션 Arrays.asList 생성

16.1 람다식이란?

작은 프로그래밍 조각의 하는 일을 표현

자바는 람다식을 익명 구현 객체로 변환

profile
인자약velog

0개의 댓글