반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

웹풀스택 공부 중

15 - 4. Java - Generic & 자료 구조 본문

웹개발/Java

15 - 4. Java - Generic & 자료 구조

lukeit 2024. 11. 4. 13:11

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) 이런식으로 계속 추가가 가능하다
  • 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