컬렉션(Collection)은 자바에서 제공하고 자료구조를 담당하는 프레임 워크
추가,삭제,정렬 등의 기능처리가 간단하게 해결되어 자료구조적 알고리즘을 구현할 필요 없음
ArrayList와 Vector, LinkedList
가 있음 //List 객체 생성방법
ArrayList list1 = new ArrayList();
List list2 = new ArrayList(); //가장많이 사용
Collection list3 = new ArrayList();
//객체 추가
list2.add("안녕하세요.");
list2.add(123);
list2.add(45.67);
list2.add(true);
list2.add(LocalDate.now());
list2.add(true);
list2.add(45.67);
list2.add(2, "ㅋㅋㅋ"); //index 2번지에 ㅋㅋㅋ를 추가하고 기존에 있던 값은 하나씩 뒤로간다.
list2.remove(1); //특정인덱스 삭제시 내부 요소 정리
list2.set(4, LocalDateTime.now()); //특정인덱스 값 덮어쓰기
System.out.println(list2.size()); //현재 저장된 요소의 개수
//1. 일반 for문
for(int i = 0; i < list2.size();i++) {
System.out.println(list2.get(i));
}
System.out.println();
//2. for each문
for(String str : list2) {
System.out.println(str);
}
System.out.println();
//3. Iterator객체
Iterator<String> iter = list2.iterator();
while(iter.hasNext()) {
String next = iter.next();
System.out.println(next);
}
출력값
안녕하세요.
ㅋㅋㅋ
45.67
true
2022-10-11T00:36:30.361054
true
45.67
HashSet, LinkedHashSet, TreeSet
이있음 //Set 객체 생성 방법
HashSet<Integer> set = new HashSet<>();
Set<String> set2 = new HashSet<>();
Collection<Student> set3 = new HashSet<>();
//요소 추가
set2.add("안녕");
set2.add("잘가");
set2.add("안녕");
set2.add("가을");
set2.add("하늘");
System.out.println(set2.size()); //저장된 전체 객체 수
//요소 재거
System.out.println(set2.remove("안녕"));
//clear
set2.clear(); //저장된 모든 객체를 삭제
//isEmpty
System.out.println(set2.isEmpty()); //컬렉션이 비어 있는지 조사
//for each문
for(String str : set2) {
System.out.println(str);
}
System.out.println();
//Iterator객체
Iterator<String> iter = set2.iterator();
while(iter.hasNext()) {
String next = iter.next();
System.out.println(next);
}
출력값
4
true
잘가
가을
하늘
true
-HashSet과 거의 동일하지만 Set에 추가되는 순서를 유지한다는 점이 다름
HashMap, Hashtable, LinkedHashMap, Properties, TreeMap
이 있음 //Map 객체 생성 방법
HashMap<String,Object> map = new HashMap<String,Object>();
Map<Integer,Student> map2 = new HashMap<Integer,Student>();
//요소 추가
//반환값 중복된 요소가 없다면, null이 반환 / 중복된 요소가 있다면, 제거된 값이 반환
System.out.println(map.put("honggd", "홍길동"));//null
System.out.println(map.put("sinsa", "신사임당")); //null
System.out.println(map.put("today", LocalDate.now())); //null
System.out.println(map.put("1234", 5678)); //null
System.out.println(map.put("honggd", "마길동")); //홍길동
//특정요소 가져오기
System.out.println(map.get("honggd"));//마길동
System.out.println(map.get("today")); //2022-10-06
System.out.println(map.get("zzzzzzZZzzz")); //null
//특정요소 제거하기
map.remove("today");
//저장된 요소의 개수
System.out.println(map.size());
Map<Integer,String> map = new HashMap<>();
map.put(123, "홍길동");
map.put(456, "신사임당");
map.put(789, "유관순");
//1. keySet
//for each
Set<Integer> keySet = map.keySet();
for(Integer key : keySet) {
String value = map.get(key);
System.out.println(key + "=" + value);
}
//Iterator
Iterator<Integer> iter = keySet.iterator();
while(iter.hasNext()) {
Integer key = iter.next();
String value = map.get(key);
System.out.println(key + "=" + value);
}
//2. entrySet
Set<Map.Entry<Integer,String>> entrySet = map.entrySet();
//for each
for(Map.Entry<Integer,String> entry : entrySet) {
Integer key = entry.getKey();
String value = entry.getValue();
System.out.println(key + "=" + value);
}
//Iterator
Iterator<Map.Entry<Integer,String>> iter2 = entrySet.iterator();
while(iter2.hasNext()) {
Map.Entry<Integer, String> entry = iter2.next();
System.out.println(entry.getKey() + "=" + entry.getValue());
}
출력값
789=유관순
456=신사임당
123=홍길동