웹풀스택 공부 중
15 - 4. Java - Generic & 자료 구조 본문
Generic
귀에 걸먼 귀걸이, 코에 걸먼 코걸이…
Generic은
에 우리가 원하는 타입을 넣으면 그에 맞게 클래스가 변화하는 것이다 어떤 타입의 클래스도 정의할 수 있는 확장성을 보장한다
예시
public interface JpaRepository<T, F> { public abstract T findById(F id) public abstract F save(T user) public abstract void delete(F id) } public class PaymentRepository / PaymentTable implements JpaRepository<Payment, Integer> { private Database psqlDatabase; public Payment findById(Integer id) { ... } public Integer save(Payment user) { ... } public void delete(Integer id) { ... } }
Collection
자료구조이다
List, Set, Map이 있다
- Array는 Collection이 아니다!
Java에서는 Array ≠ List 이다
- Array: 고정 길이를 가지고 있다
- Elements의 값만 바꿀 수 있다
- ArrayList: 메모리 영역을 늘려서 값을 추가한다
- 잘못 사용하면 Memory Overflow가 발생할 수 도 있다
- 사용 예시:
String[] strings_array = new String[3]();
- List: 동적 (가변) 길이를 가지고 있다
- LinkedList: 메모리 영역이 어디든 연결이 가능하다
- 삽입, 삭제 성능 우수
- ArrayList: 조회 성능 우수
- 사용 예시:
List<String> strings_list = new ArrayList<>():
- 왜 <>이죠? = 딱봐도 String이 들어갈 곳이니까!
- 가변길이이기 때문에
string_list.add(1)
이런식으로 계속 추가가 가능하다
- LinkedList: 메모리 영역이 어디든 연결이 가능하다
- Array: 고정 길이를 가지고 있다
Set
- 들어있는 값들이 모두 고유한 리스트 = 중복값이 존재하지 않는다
- 구현체 종류
- HashSet
- TreeSet
- 자동정렬이 가능하다
Map
Key-value 기반의 자료구조
HashMap의 예시
Map<Integer, Member> members = new HashMap<>(); members.put(1, new Member(1,"Aaron"));
반응형
'웹개발 > Java' 카테고리의 다른 글
15 - 6. Java - ENUM (0) | 2024.11.04 |
---|---|
15 - 5. Java - Abstract Class vs Interface (0) | 2024.11.04 |
15 - 3. Java - Static (0) | 2024.11.04 |
15 - 1. Java - Lombok (0) | 2024.11.04 |
14 - 5. Java - Builder & 정적 팩토리 메서드 (1) | 2024.11.04 |