36. 컬렉션
제너릭
다양한 종류의 데이터 타입을 처리할수 있는 클래스 작성 기법
자바의 제너릭은 클래스 기법이 아니라 캐스팅을 판단하기 위한 표시이다
기존의 방법은 public void Store{}이런식이지만 제너릭 방식은 class Store<T>이다
저기서 T는 데이터 타입의 자리지만 데이터타입을 정하지 않은것을 의미한다
후에 메인 클래스에서 객체를 생성할때에 데이터타입을 정할수 있다
Top<String> t = new Top<String>(); 다음의 경우 Top클래스에서 String 형식을 사용하겠다는 것을 의미한다
즉 클래스 타입의 객체를 생성할 때 인스턴트를 설정할때 결정된다
ArrayList
순서가 있는 배열이며 데이터를 중복해서 포함이 가능하다 데이터 삽입시 add 추출시 get메서드를 사용한다
데이터 형식 = ArrayList<String> add = new ArrayList<String>();
add | 데이터 삽입 |
get | 데이터 추출 |
remove | 데이터 변경 or 데이터 삭제 |
contains | 리스트 내부에 특정 데이터 포함 여부(boolean) |
indexOf | 리스트 내부에 특정 데이터가 없다면 -1 출력 |
if(list.indexOf(name) != -1)이런 방식으로 데이터 내부에 name이 들었는지 확인이 가능하다
length | 배열의 방의 개수(길이) |
length() | 문자열의 길이 |
size() | 컬렉션 안의 요소의 개수 |
HashSet
중복을 허용하지 않는 집합적인 성질을 가진 클래스
데이터의 저장순서는 정해진것이 없다 순서의 개념이 아닌 집합의 개념이라 데이터가 순서대로 나오지 않을수도 있다
Iterator = 현 set의 구조의 요소들을 순서대로 처리하기 위해 Iterator 객체로 반환한다
Iterator<String> iter = hs.iterator();
while(iter.hasNext()) {
String p = iter.next();
System.out.println(p + " ");
}
while(iter.hasNext()) iter.hasNext()를 만날때까지 반
print의 경우 저장된 순서에 상관없이 출력된다
HashMap
Map의 인터페이스 중 가장 대표적인 클래스
Key값과 Value값으로 데이터를 관리하고 키를 이용해 데이터를 추출한다
동기화가 필요없을때 사용을 한다
중복을 허용하지 않으며 순서에 의미가 없다
put(key, value) | 데이터 추가 |
get(key) | 데이터 추출 |
size() | 객체의 크기 |
containsKey(boolean) | Key값의 특정 데이터의 여부 확인 |
containsValue(boolean) | Value값의 특정 데이터의 여부 확인 |
keySet | Key값만 추출 |
values | Value값만 추 |
객체 생성및 선언 = HashMap<String, Integer> hm = new HashMap<String, Integer>();
List | 순서가 있고 중복을 허용 |
Set | 순서가 없고 중복을 허용하지 않는다 |
Map<K,V> | 순서가 없고, Key(키) : 중복허용X, Value(값) : 중복허용O |