1. 자바 컬렉션 List (인터페이스)
- List 계열의 메서드는 비슷하다. 따라서 주요메서드가 있다는 것을 인지해야한다
- List 인터페이스 메서드 종류
- 객체 추가기능
- add() : 객체를 맨끝부분에 추가
- set() : 인덱스에 저장된 객체를 주어진객체로 바꿈
- 객체 검색기능
- contains() : 객체가 저장되어있는지 판단,
- get() : 인덱스 기준으로 저장된 객체를 리턴
- isEmpty() : 컬렉션이 비었는지 판단
- size() : 저장되어있는 객체수 리턴(length와 비슷)
- 객체 삭제 기능
- clear() : 모든 객체 삭제
- remove() : 인덱스 기준 저장된 객체 삭제
- remove() : 주어진 객체를 삭제
- 객체 추가기능
- List 인터페이스 메서드 종류
- 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는 어떤게 들어가도 상관없다.
'PlayData 백엔드 부트캠프 정리' 카테고리의 다른 글
PlayData 백엔드 부트캠프 Start 12일차 (0) | 2024.08.25 |
---|---|
PlayData 백엔드 부트캠프 Start 11일차(JAVA 수업끝...ㅠ) (0) | 2024.08.23 |
PlayData 백엔드 부트캠프 Start 9일차 (0) | 2024.08.20 |
PlayData 백엔드 부트캠프 Start 8일차 (0) | 2024.08.19 |
PlayData 백엔드 부트캠프 Start 7일차 (0) | 2024.08.17 |