Collections 이란?
기존의 배열 [ ] 는 처음 생성 시, 크기를 알아야 하며, 조절을 할 수 없다는 큰 단점을 가지고 있습니다.
반면 Collection은 여러개의 데이터를 크기와 상관없이 담을 수 있으며 좀 더 유연하게 사용하기 위해 나오게 되었습니다.
Collection 계열 | 클래스 명 | 특징 |
List | ArrayList, Vector .. | 인덱스를 통해 관리되며, 데이터 중복이 가능 합니다. |
Set | HashSet .. | 순서에 상관없이 저장되며, 데이터 중복이 불가 합니다. |
Map | HashMap, HashTable .. | 순서에 상관없이 저장되며, 키 와 값 으로 구성 되어있습니다. |
Collection 의 구현
List 계열
인덱스를 통해 관리되며, 데이터 중복이 가능 합니다.
package lesson19_Collection;
import java.util.ArrayList;
public class Main_arrayList {
public static void main(String[] args) {
// <> : Generic, 자료형을 제한합니다 객체만 사용할 수 있습니다.
ArrayList<String> arrayList = new ArrayList<>();
arrayList.add("Hello"); //0 번 인덱스에 값을 넣습니다.
arrayList.add("Java"); //1 번 인덱스에 값을 넣습니다.
arrayList.add("World"); //2 번 인덱스에 값을 넣습니다.
arrayList.add(1, "안녕하세요"); //1 번 인덱스에 값을 추가합니다. [ 기존 1,2 번이 -> 2,3번으로 밀립니다]
arrayList.set(2, "잘 부탁드립니다."); //2 번 인덱스 값을 변경합니다. [2번이된 Java가 잘 부탁드립니다로 변경]
arrayList.remove(0);
for (String str1 : arrayList) {
System.out.println(str1);
}
}
}
Set 계열
순서에 상관없이 저장되며, 데이터 중복이 불가 합니다.
package lesson19_Collection;
import java.util.HashSet;
public class Main_hashSet {
public static void main(String[] args) {
HashSet<String> hashset = new HashSet<>();
hashset.add("A");
hashset.add("D");
hashset.add("C");
hashset.add("B");
hashset.add("F");
hashset.add("E");
hashset.add("F");
System.out.println("HashSet 크기\t"+hashset.size()); // 7개를 넣었지만 1건 중복되어 제거됩니다.
for (String string : hashset) {
System.out.println(string);
}
}
}
Map계열
인터페이스로 구현한 클래스는 키를 이용해서 데이터를 관리합니다. - 키값은 중복되지 않습니다.
package lesson19_Collection;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
public class Main_hashMap {
public static void main(String[] args) {
HashMap<String, Integer> hashmap = new HashMap<>();
hashmap.put("나트륨", 150);
hashmap.put("탄수화물", 8);
hashmap.put("지방", 6);
System.out.println(hashmap.get("나트륨"));
// Map에서 키만 추출 => Set
Set<String> keys = hashmap.keySet();
ArrayList<String> keys2 = new ArrayList<>(keys);
for (String string : keys2) {
System.out.print(string + " ");
System.out.println(hashmap.get(string));
}
}
}
'Language > Java' 카테고리의 다른 글
19. Java 입력과출력 (0) | 2020.03.08 |
---|---|
16. Java 예외처리 (0) | 2020.03.08 |
17. Java 문자열 및 유용한클래스 (0) | 2020.03.08 |
15. Java 추상클래스 (0) | 2020.03.08 |
14. Java 인터페이스와 다형성 (0) | 2020.03.08 |