20230811 (금)
<컬렉션 프레임워크>
1. 컬렉션 프레임워크의 주요 인터페이스
- List : 중복 허용, 자바스크립트의 Array와 동일한 역할, 순서가 의미를 가지냐, index로 관리
- Set :
- Map : key, value로 관리, DB역할, 자바스크립트의 Object
<List 컬렉션>
1. List 컬렉션
- 특징
* 인덱스로 관리 (순서가 있다.)
* 중복해서 객체 저장 가능
- 구현 클래스
* ArrayList
* Vector
* LinkedList
** 여러개의 참조 변수들로 구성됨.
- Primitive 타입을 못넣음. 참조(Reference) 타입만 가능.
- CRUD 메카니즘
2. List 컬렉션의 주요 메소드
- E remove(int index) : 삭제된 내용을 리턴해달라.
- list.add() //맨 끝에 객체 추가
- list.get(list.size() -1) //인덱스로 객체 찾기 (마지막 인덱스 찾기)
- list.remove() //인덱스로 객체 삭제
==> 스택 LIFO(Last In First Out)
- list.add(0);
- list.remove(0);
Queue - FIFO(First In First Out) : 도착순서를 지켜준다.
3. List 컬렉션의 순회(iterate)
=================== 여기까지가 인터페이스를 구현하는 방법 ==============================
4. ArrayList
- 저장 용량(capacity)
* 초기 용량 : 10 (따로 지정 가능)
* 저장 용량을 초과한 객체들이 들어오면 자동적으로 늘어남. 고정도 가능.
* List<String> list = new ArrayList<String>();
- new ArrayList<String>(); 만 확정이고 나머지는 List랑 구현방법 다 같음.
- println(List) : 배열은 보여주지 않는, 안의 리스트들을 다 보여줌.
- 배열 식 데이터 넣기
String[] arr={~~, ~~, ~~, ~~};
- List 식 데이터 넣기
list.add("Java");
list.add("JDBC");
list.add("Servlet/JSP");
list.add(2, "Database");
list.add("iBATIS");
5. LinkedList
List<E> list = new LinkedList<E>();
- 특징
* 인접 참조를 링크해서 체인처럼 관리
* 특정 인덱스에서 객체를 제거하거나 추가하게 되면 바로 앞뒤 링크만 변경
* 빈번한 객체 삭제와 삽입이 일어나는 곳에서는 ArrayList보다 좋은 성능
class Node <T> {
T t; //T : 나랑 같은 녀석에 대한 참조..
Node prev; //prev 내 앞에 있는 사람.
Node next; //next 내 뒤에 있는 사람
}
ArrayList와 LinkedList 둘 중 어느것을 써도 상관없지만, 둘의 차이는 알고 있어야 함.
<List 컬렉션>
<Lombok 어노테이션>
- 복합 처리
* @Data
** @ToString...
<DAO>
1. DAO : Data Access Object
메서드 기능을 못외웠다.
해당 클래스의 메서드를 기억해야 함.
테스트 되지 않은 클래스는 사용하지 마라 라는 말이 있음.
그래서 반드시 테스트를 해주는 것이 좋음.
테스트를 사용하면 좋은 점 : 해당 클래스를 사용하는데에 대한 예제가 됨.
좋아..!