Collection
0. API란?
1. collection 객체?
2. ArrayList와 Vector
3. Set
4. Map
0. API(Application Programming Interface)
: 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 의미함
- 예) java.lang.String
concat(String str): 문자열 붙이기
indexOf(String str): 해당 문자가 들어있는 위치를 알려줌
※ 해당하는 문자가 없으면 -1 값 출력
substring(int beginIndex, int endIndex): 문자열을 읽어냄
※ endIndex는 끝 지점 다음 문자를 의미함
1. collection 객체?
- 순서가 따로 없는 객체들의 단순한 모임
- java.util.Set : 중복 불가능 / 수학적 의미의 객체 / 저장순서 유지 안됨
.List : 중복 가능 / 순차적 나열, 순서지정이 가능 - ArrayList, Vector
.Map : key = value 구조 / 순서 유지 안됨
※ 기존의 key값과 동일한 key값을 지정할 경우, 기존 값은 삭제되고
새로운 값으로 저장됨
= key는 중복 불가능 / value는 중복 가능
- <> (generic):
다양한 데이터 타입을 넣으면 캐스팅을 통해 변환할 수 없음
이에 따른 불편함을 generic을 이용해 일관성 있는 추출이 가능해짐
- ArrayList는 생성시 크기가 고정되어 있으나 용량 초과시 자동적으로 용량이 늘어남
빈번한 객체의 삽입, 삭제가 일어나는 곳에서는 사용하지 않는 것이 좋음
: 가변성 / 순차적으로 요소 값 저장 / 중복 요소 값 허용
- Vector는 동기화(synchronized) 메서드로 구성되어 동기화 문제를 신경쓰지 않아도 됨
단, 속도는 ArrayList보다 느림
2. ArrayList와 Vector
<인터페이스 기반 프로그래밍 그리고 콜렉션 객체의 계층>
- ArrayList는 특정 객체를 제거했을 경우 바로 뒤의 인덱스 값부터 마지막까지 모두 하나씩 빈 공간만큼 앞당겨짐
- ArrayList에서 get메서드는 elementAt 메서드와 같은 역할
3. Set
1) interface / hashMap을 통해 implements 가능
2) hashMap은 임의의 데이터 길이를 고정된 길이의 데이터로 매핑가능
- 저장 순서가 유지되지 않음: 따라서 꺼낼 때도 순서대로 꺼낼 수 없음
- 순서를 유지하려면 LinkedHashSet을 사용해야함
- 값을 중복해서 저장할 수 없음
4. Map
- key = value 구조로 데이터를 저장
- put(): 객체 추가
- get(): key에 해당하는 값(value)을 찾아오기
- containskey(): map에 해당 key가 있는지 조사해서 return