1. List
List : 순서가 있고 중복된 데이터 추가
- index번호로 값을 찾음
- 데이터베이스에 자주 사용됨
- 종류(아래 5가지 메소드는 동일)
- ArrayList : 비동기화 , 인스턴스 메소드(new로 메모리 공간 생성)
- Vector : 동기화
- LinkedList
- Queue
- Stack
Tip
동기화 vs 비동기화
- 동기화(synchronized) : 한놈들어가고 나오면 다른놈들어가는것
- 비동기화 : 여러놈이 들어가서 쓰는 것 (동기화보다 빠름)
- 인터페이스이기 때문에 인터페이스를 구현하고 있는 클래스를 이용해서 메모리 할당을 한다.
- 순서가 있다.
- 중복된 데이터를 사용할 수 있다.
1.1 ArrayList
- 비동기화
- 맨 뒤에 붙일 땐 속도 빠름
- 중간 삽입은 번호를 새로 매겨야 해서 속도 느림
-
Vector(동기화) , LinkedList(속도 가장 빠름)와 동일
-
인스턴스 메소드(new로 메모리 공간 생성) : ArrayList list = new ArrayList();
- 기본형이 Object이기 때문에 꼭 형변환 시켜서 값 읽어줘야 함
int a=(int)list.get(0);
, double d= (double) list.get(1);
- 데이터 형을 맞춰서 입력해줘야 편함
-
데이터형이 뒤섞여있으면 for-each사용 불가
- 특정 index위치에 데이터 삽입 가능함
list.add(1,"강강강")
- 원래 있던 데이터는 추가된 만큼 index번호가 뒤로 밀림
- 리스트에 데이터 추가 :
list.add("홍길동");
- 리스트 크기 확인 :
list.size();
- 리스트 수정 :
names.set(2, "둘리");
- 리스트 전체 삭제 :
names.clear();
1.2 LinkedList
1.3 Queue
- 메서드
1.4 Stack
- 메서드
2. Set
Set : 순서가 없고 중복이 없는 데이터 추가
- 인터페이스이다.
- 순서가 없다
- 중복된 데이터를 사용할 수 없다.
- 탐색기에 자주 사용됨
- 종류
2.1 HashSet vs TreeSet
3. Map
Map : Key,Data 두 개를 동시에 저장
- 클래스 관리에 자주 쓰임(spring)
- 종류
- 키와 값을 나눠서 저장할 수 있는 공간이다.
- 키는 중복될 수 없다.
- 값은 중복될 수 있다.
- 클래스를 미리 메모리할당하고 키를 이용해서 할당된 주소를 찾아서 사용할 때 많이 사용한다.
- 웹에서 사용되는 request,response,session,cookie 들이 Map방식으로 저장된다.
3.1 HashMap
- put() : 값 입력할때
- get() : 값 자져올때
- clear()
3.2 Hashtable
- 일반적으로 동기화가 필요 없다면 HashMap을, 동기화 보장이 필요하다면 Hashtable을 사용하면된다.
- HashMap과 Hashtable은 동기화를 보장하느냐 하지 않느냐는 측면 이외에는 차이가 거의 없다.
🙋♀️ Comments
2020-2021, haenyilee Revision
625beb4