컬렉션 (collection) 개념
※컬렉션 (collection)의 개념
-요소(element) 객체들의 저장소
#객체들의 컨테이너라고도 불림
#요소의 개수에 따라 크기 자동 조절
#요소의 삽입, 삭제에 따른 요소의 위치 자동 이동
-고정 크기의 배열을 다루는 어려움 해소
-다양한 객체들의 삽입, 삭제, 검색 등의 관리 용이
※Collections Framework - 배열과 컬렉션즈 프레임웍크
우리는 배열에 대해서 공부했다. 배열은 연관된 데이터를 관리하기 위한 수단이었다. 그런데 배열에는 몇가지 불편한 점이 있었는데 그 중의 하나가 한번 정해진 배열의 크기를 변경할 수 없다는 점이다. 이러한 불편함을 컬렉션즈 프레임워크를 사용하면 줄어든다.
요약: 배열이 갖고 있는 불편함을 벗어나려고 이용
※제네릭 이란?
특정 타입만 다루지 않고, 여러 종류의 타입으로 변신할 수 있도록 클래스나 메 소드를 일반화시키는 기법
Set – 데이터가 중복적으로 저장되지 않게 할때
List – 데이터가 중복데이터 입력이 상관 없을 때
Map – 키값의 형식인 저장방식의 컨테이너가 필요할 때 사용
키 값은 고유함, value는 중복을 허용함
※ArrayList의 사용법
import java.util.ArrayList; // 패키지를 불러온다.
public static void main (String [ ] args) {
ArrayList <String>al = new ArrayList <String>(); // 객체 생성 al
al.add(“one:); // al 배열 ”one” 데이터 추가
al.add(“two”); // al 배열 “two” 데이터 추가
al.add(“three”); // al 배열 “three” 데이터 추가
for(int i=0; i<al.size(); i++){
system.out.println(al.get(i)); // 배열의 전체를 출력
}
또는
for(int i=0; i<al.size(); i++){
String value = (String) al.get(i);
System.out.println(value);
}
}
※Hashset의 사용법
import java.util.Hashset;
public static void main(String [ ] args) {
HashSet <Integer> A = new HashSet <Integer>(); //컨테이너의 인스턴스
A.add(1); // A 배열 “1” 데이터 추가
A.add(2); // A 배열 “2” 데이터 추가
A.add(2); // A 배열 “2” 데이터 추가 (무시됨)
A.add(3); // A 배열 “3” 데이터 추가
}
Iterator hi = (Iterator) A.iterator();
while (hi.hasNext()){ // 배열의 전체를 출력
System.out.println(hi.next( ));
}
System.out.println (A.containsAll (B)); //false
System.out.println (A.containsAll (C)); //true
※HashMap의 사용법
import java.util.Collection;
public class MapDemo{
public static void main (String[] args){
HashMap<String, Integer> a = new HashMap<String, Integer>();
HashMap< key , value > a = new HashMap<>();
a.put(“one”,1); a.put(“two“,2); // a.put(“키값”,인자);
a.put(“three”,3); a.put(“four“,4);
System.out.print(a.get(“one”));
System.out.print(a.get(“two”));
System.out.print(a.get(“three”));
iteratorUsingForEach(a);
iteratorUsingIterator(a);
}
//출력방법 1
static void iteratorUsingForEach (HashMap map){
Set<Map.Entry<String, Integer>> entries = map.entrySet();
// Map -> Set 으로
for (Map.Entry<String, Integer> entry : entries ){
System.out.println(entry.getkey() + “ : ” + entry.getValue());
}
//출력방법 2
static void iterator UsingIterator(HashMap map){
Set>Map.Entry<String. Integer>> entries = map.entrySet();
Itertor<Map.Entry<String, Integer>> i = entries.iterator();
while(i.hasNext()){
Map.Entry<String, Integer> entry = I.next();
System.out.println(entry.getKey() + “ : ” + entry.getValue());
}
}
}
}