PlayData 백엔드 부트캠프 정리

PlayData 백엔드 부트캠프 Start 10일차

효건 2024. 8. 21. 23:58

 

오늘 배운 내용을 포괄적으로 다루고 있는 것이니 유의해서 보자~!!@#@

 

1. 자바 컬렉션 List (인터페이스)

  • List 계열의 메서드는 비슷하다. 따라서 주요메서드가 있다는 것을 인지해야한다
    • List 인터페이스 메서드 종류
      • 객체 추가기능 
        • add() : 객체를 맨끝부분에 추가
        • set() : 인덱스에 저장된 객체를 주어진객체로 바꿈
      • 객체 검색기능
        • contains() : 객체가 저장되어있는지 판단,
        • get() : 인덱스 기준으로 저장된 객체를 리턴
        • isEmpty() : 컬렉션이 비었는지 판단
        • size() : 저장되어있는 객체수 리턴(length와 비슷)
      • 객체 삭제 기능
        • clear() : 모든 객체 삭제
        • remove() : 인덱스 기준 저장된 객체 삭제
        • remove() : 주어진 객체를 삭제
  • ArrayList
    • 크기가 동적으로 변할수있다.
    • 삽입 삭제 기능이 제공되며 크기도 알아서 조정되며 인덱스도 알아서 부여된다.
    • 리스트객체 중 하나이다. 
  • LinkedList
    • 메서드는 비슷하나 메모리에서 구조가 다르다는 것을 명심하자 .
    • 모든데이터가 데이터 부분과 주소부분을 별도로 가지고 있다.
    • 따라서 ArrayList보다 추가 삭제면에서 성능적인 이득이 있으나 탐색면에서는 불리한 면이 있다.


2. 자바 컬렉션  Set(인터페이스)

  • Set 인터페이스 주요 메서드
    • 객체 추가기능 
      • add() : 주어진 객체를 저장, 성공적으로 저장되면 true를 리턴, 중복 객체를 저장하면 false를 리턴.
    • 객체 검색기능
      • contains() : 객체가 저장되어있는지 판단,
      • iterator() : 저장된 객체를 한번씩 가져오는 반복자 객체를 리턴
      • isEmpty() : 컬렉션이 비었는지 판단
      • size() : 저장되어있는 객체수 리턴(length와 비슷)
    • 객체 삭제 기능
      • clear() : 모든 객체 삭제
      • remove() : 주어진 객체를 삭제
  • Iterator 인터페이스 주요메서드
    • hasNext() : 가저올 메서드가 있으면 true 없으면 false
    • next() : 컬렉션에서 하나의 객체를 가져옴.
    • remove(): Set컬렉션에서 객체를 제
  • HashSet
    • Set의 특징을 그대로 가짐.
    • 중복 저장 안되며 데이터의 순서를 보장하지 않는다.
    • 데이터 삽입속도가 따르고 대용량의 자료를 관리하기 용이 
  •  TreeSet
    • 중복허용을 하지 ㅇ낳으나 Tree구조를 활용 자동정렬가능

3. 자바 컬렉션 Map(인터페이스)

  • Map 인터페이스 메서드 종류
      • 객체 추가기능 
        • put() : 주어진 키와 값을 추가, 정상작동하면 값 리턴
      • 객체 검색기능
        • containsKey() : 주어진 키가있는지 확인 
        • containsValue() : 주어진 값이 있는지 확인
        • get) 주어진 키에들어있는 값 리턴 
        • isEmpty() : 컬렉션이 비었는지 판단
        • size() : 저장되어있는 객체수 리턴(length와 비슷)
        • values() : 저장된 모든 값을 컬렉션에 담아 리턴
        • KeySet() : 저장된 모든키를 Set객체에 담아 리턴 
        • entrySet() : 키와 값의 쌍으로 구성된 모든 Entry 객체를 Set에 담아 리턴.
      • 객체 삭제 기능
        • clear() : 모든 객체 삭제
        • remove() : 키 기준 저장된 객체 삭제
  • HashMap
    • hashCode()와 equals() 메서드가 오버라이딩 된 객체를 키로 지정해야 함.
    • 키와 값의 쌍으로 저장하는Map의 특징을 그대로 가짐.  
    • 리스트 저장 순서를보장하지 못함.
  • LinkedHashMap
    • 저장된 순서를 보장해야 할때 사용

4. Enum

  • 들어오는 값이 몇가지로 지정하여 있을 때 사용한다. 예를들어 내가 현재 KBO의 팀의 팬을 조사하려고 한다. 그런데 갑자기 LA다저스가 들어오는 불상사를 막기 위해서 사용한다고 볼수있다.
  •   Enum을 사용하면 가독성이 좋아지며 컴퍼일과정에서 타입의 안정성이 증대된다.
  • 구현의 의도를 명확하게 파악할수있다.
  • 아래와 같이 enum선언을 하게 되면 아래에 쓰여진 10개구단중 1개만을 사용하여 변수에 초기화할수있다.
public enum Kbo {

    Kia("기아타이거즈", "광주"),
    Samsung("삼성라이온즈","대구"),
    LG("엘지트윈스","서울(잠실)"),
    DooSan("두산베어스","서울(잠실)"),
    SSG("SSG렌더스","인천"),
    KT("KT위저스","수원"),
    HanWha("한화이글스","대전"),
    Lotte("롯데자이언츠","부산"),
    NC("NC다이노스","창원"),
    KiWoom("키움히어로즈","서울(고척)");

    private final String fullName;
    private final String home;

    Kbo(final String fullName, final String home) {
        this.fullName = fullName;
        this.home = home;
    }

}


5. Generic

  • 클래스 내부에서 타입을 지정하는 것이 아닌 외부에서 객체 생성시 타입을 지정하는 문법이다.
  • 따로 탕비을 변환해줄 필요가 없으므로 유지보수 코드의 재사용성이 상당히 증대된다.
public class Box<T> {
    private T obj;
    public T getObj() {return obj;}
    public void setObj(T obj) {this.obj = obj;}
}

<>  -> 제너릭 이며  T는 어떤게 들어가도 상관없다.