CHAPTER 11
1. List 인터페이스
List인터페이스는 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현
1-1. ArrayList
- 연속적
- remove메서드는 끝에서부터 하는게 효율적 -> 처음이나 중간 값을 remove하면 해당 Index를 채워넣기 위해 System.arrayCopy가 호출되어야 하므로 비효율적이다.
1-2 LinkedList
- 불연속적
- 배열의 중간에 추가 혹은 삭제할 경우의 비효율성을 보완하기 위해 만들어짐
- 배열의 중간에 추가 혹은 삭제할 경우에 다음 노드의 주소값을 변경하기만 하면 돼서 효율적이다.
- 더블 링크드 리스트 : 단방향리스트는 이전요소에 대한 접근이 힘들기 때문에 이전/다음의 노드 주소값을 갖고 있다.
- 더블 써큘러 링크드 리스트 : 더블 링크드 리스트에서 처음과 끝을 이어준다.
- LinkedList클래스는 '더블 링크드 리스트'로 구현되어 있음!
컬렉션 | 읽기(접근시간) | 추가 / 삭제 | 비고 |
ArrayList | 빠르다 | 느리다 | 순차적인 추가삭제는 더 빠름 비효율적인 메모리 사용 |
LinkedList | 느리다 | 빠르다 | 데이터가 많을수록 접근성이 떨어진다. |
- 데이터의 개수가 변하지 않는 경우 : ArrayList
- 데이터 개수의 변경이 잦다면 : LinkedList
- 두 클래스의 장점을 이용해서 두 클래스를 조합해서 사용하는 방법도 있음.
ArrayList al = new ArrayList(100000); for(int i=0;i<100000;i++) al.add(i); LinkedList ll = new LinkedList(al); for(int i=0;i<100000;i++) ll.add(500,"X");
2. Set 인터페이스
Set인터페이스는 중복을 허용하지 않고 저장순서가 유지되지 않는 클래스를 구현
3. Map 인터페이스
Map인터페이스는 Key와 Value를 하나의 쌍으로 묶어서 저장하는 컬렉션
Key는 중복이 허용되지 않고 Value는 중복이 허용된다.
메서드 |
설 명 |
boolean containsKey(Object key) |
지정된 key객체와 일치하는 Map의 key 객체가 있는지 확인 |
boolean containsValue(Object value) |
지정된 value객체와 일치하는 Map의 value 객체가 있는지 확인 |
Set entrySet() |
Map에 저장되어 있는 key-value쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환 |
Set keySet() |
Map에 저장된 모든 key객체를 반환한다. |
Collection values() |
Map에 저장된 모든 value객체를 반환한다. |
values()에서는 반환타입이 Collection이고, keySet의 반환타입이 Set인거에 주목하자.
key는 중복을 허용하지 않기 때문에 Set / value는 중복을 허용하기 때문에 Collection 반환
3-1. Map.Entry 인터페이스
Map.Entry 인터페이스는 Map 인터페이스의 내부 인터페이스 이다.
Map에 저장되는 key-value쌍을 다루기 위해 내부적으로 정의해놓았다.
메서드 |
설 명 |
boolean equals(Object o) |
동일한 Entry인지 비교한다. |
Object getKey() |
Entry의 key객체를 반환한다. |
Object getValue() |
Entry의 value객체를 반환한다. |
int hashCode() |
Entry의 해시코드를 반환한다. |
Object setValue(Object value) |
Entry의 value객체를 지정된 객체로 바꾼다. |
'자바의정석' 카테고리의 다른 글
CHAPTER 9 (0) | 2019.01.29 |
---|---|
CHAPTER5~CHAPTER7 (0) | 2019.01.21 |
개발/운영 설정파일 개념.
개발/운영 설정파일은 따로 관리해서 원소스로 가는게 좋다.
1. was기동시 개발/운영서버에 D옵션을 각각 설정해준다.
2. 개발 : DSERVER.ID=DEV / 운영 : DSERVER.ID=REAL
3. .prop 파일에서는 D옵션으로 개발, 운영 구분하여서 각각의 설정파일을 다른 걸 바라보게 한다.
4. 개발소스에서는 .prop의 설정key를 물고 와서 개발/운영이 원소스로 돌아가도록 개발한다.!
'경험, 느낀 점' 카테고리의 다른 글
poi-object-mapper 라이브러리를 사용하여 엑셀 데이터 바인딩하기 (0) | 2019.02.26 |
---|
해당 디렉토리 트리에서 심볼릭링크 찾기
- 해당 디렉토리 트리에서 심볼릭링크 찾기
find . -type l -printf "%p --> %l\n"
'Linux' 카테고리의 다른 글
Apache(웹서버) & Tomcat(WAS) 설치 및 연동 (0) | 2019.07.07 |
---|---|
Cent OS 7 설치 및 기본세팅 (0) | 2019.07.07 |
포트번호로 프로세스 찾기(WAS 포트 겹칠 때) (0) | 2019.02.22 |
crontab 설정 (0) | 2019.02.22 |
리눅스] BASH 쉘의 로그인 과정 (0) | 2019.02.22 |