01. 기본 미션 : 직접 정리한 키워드 공유하기
컬렉션 프레임워크
☀ 널리 알려진 자료구조를 이용하여 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에서 제공하는 인터페이스와 구현 클래스
프레임워크 : 사용 방법을 정해 놓은 라이브러리를 의미함
컬렉션 : 객체의 저장을 뜻함
List 컬렉션
☀ 배열과 비슷하게 객체를 인덱스로 관리, 배열과 차이점으로는 용량이 동적으로 변경된다는 것.
- 컬렉션 인터페이스 중 하나
- ArrayList, Vector, LinkedList
- 크기 조절이 가능함
- 초기 크기를 지정하지 않아도 됨
- 삭제는 즉 공간을 지우는 것
Set 컬렉션
☀ 저장 순서가 유지되지 않으며, 객체 중복 저장이 불가능하며 한 개의 null만 저장할 수 있음
- 변수/리턴 타입이 E라는 타입 파라미터가 존재함 ==> 제네릭 타입이기 때문
- HashSet, LinkedHashSet, TreeSet
Map 컬렉션
☀ 키와 값으로 구성된 Map.Entry 객체를 저장하는 구조를 갖고 있음
- Entry == Map 인터페이스 내부에 선언된 중첩 인터페이스
- 키, 값 모두 객체
- HashMap, Hashtable, LinkedHashMap, Properties, TreeMap
LIFO, FIFO 컬렉션
☀ LIFO == Last In First Out, 나중에 넣은 객체가 먼저 빠져나감
☀ FIFO == First In First Out, 먼저 넣은 객체가 먼저 빠져나감
Stack : LIFO, push(E item), peek(), pop() 등의 메서드를 사용함
Queue : FIFO, offer(E e), peek(), pop() 등의 메서드를 사용함 // LinkedList 구현 가능
02. 선택 미션 : p. 573 [직접 해보는 손코딩] 코딩 과정 및 실행 결과 캡쳐하기
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class HashMapExample {
public static void main(String[] args){
/* [HashMap] implements Map
*
* - 키(key) 객체, 값(Value) 객체로 구성된 Map.Entry 객체를 저장하는 구조
* : Entry 는 Map 인터페이스 내부에 선언 된 중첩 인터페이스
*
* - 키(key)는 중복 저장 될 수 없지만 값은 중복 저장 가능
*/
//Map 컬렉션 생성
Map<String, Integer> map = new HashMap<String, Integer>();
//객체 저장
map.put("신용권",85);
map.put("홍길동",90);
map.put("동장군",80);
map.put("홍길동",95);
System.out.println("총 Entry 수: " + map.size());
//객체 찾기
System.out.println("\t홍길동 : " +map.get("홍길동"));
System.out.println();
// [객체 루핑 처리]
// 1. Set<Key> 이용
// key 구슬들이 주머니 안에
// 객체를 하나씩 처리
Set<String> keySet = map.keySet();
Iterator<String> keyIterator = keySet.iterator();
while(keyIterator.hasNext()){
String key = keyIterator.next(); // key값 가져오기 // 타입 매개변수이름 = iterator set 매개변수 이름 . next();
Integer value = map.get(key); // value 값 가져오기
System.out.println("\t"+key+" : " + value);
}
System.out.println();
// 객체 삭제
map.remove("홍길동");
System.out.println("총 Entry 수: " + map.size());
// 2. Set<Map.Entry> 이용
// map.entry구슬들이 주머니 안에
// 객체를 하나씩 처리
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
Iterator<Map.Entry<String, Integer>> entryIterator = entrySet.iterator();
while(entryIterator.hasNext()){
Map.Entry<String, Integer> entry = entryIterator.next(); // Map.Entry에서 하나 꺼내오기
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println("\t" + key + " :" + value);
}
System.out.println();
// 객체 전체 삭제
map.clear();
}
}
이번에는 나름의 풀이를 코드 속에 녹여내려고 노력해 보았습니다.
직관적으로 적는 게 이후 이해할 때 더 도움이 되더라고요!
BOJ 풀이를 시작했습니다... 개강 전까지 solved.ac 랭크를 골드 5 이상으로 올리는 것이 목표입니다. (현재 실버 2)
함께 공부하는 알고리즘도 열어 주시면 안 되나요? 혼자 하니까 정말... 너무너무 풀기 싫은 BOJ...
이코테랑 함께하는~ 스터디 그룹~^^ 같은 거 만들어 주시면 저 정말 최선을 다해 공부할게요...
(이래놓고 또 하기 싫어서 빈둥거리겠지)
벌써 혼공단이 1주밖에 안 남았네요...~ 개강도 1주밖에 안 남았다는 사실이겠죠?
이번 방학도 혼공단과 함께여서 행복했습니다... 다음 방학에도 꼬옥... 꼬옥 만나요 제발...
++
이건 기념하고 가야지... 우리팀 10연승 달❤성
너무 잘해 우리팀~!~!~!
이쯤되면 나도 열심히 살아야지... 이렇게 또다시 공부를 하러 갑니다... aT1os...^^
'혼공학습단' 카테고리의 다른 글
[혼공학습단7기] 6주차 기본 미션, 선택 미션 (0) | 2022.02.28 |
---|---|
[혼공학습단7기] 4주차 기본 미션, 선택 미션 (0) | 2022.02.12 |
[혼공학습단7기] 3주차 기본 미션, 선택 미션 (0) | 2022.02.01 |
[혼공학습단7기] 2주차 기본 미션, 선택 미션 (0) | 2022.01.23 |
[혼공학습단7기] 1주차 기본 미션, 선택 미션 (0) | 2022.01.16 |
댓글