JAVA

36. 컬렉션

NamGH 2023. 8. 16. 21:29

제너릭 

다양한 종류의 데이터 타입을 처리할수 있는 클래스 작성 기법 

자바의 제너릭은 클래스 기법이 아니라 캐스팅을 판단하기 위한 표시이다

기존의 방법은 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