
기능 : 크기 자동조절/ 추가/ 수정/ 삭제/ 반복/ 순회/ 필터/ 포함확인 등...
컬렉션 종류
Collection은 기본형 변수가 아닌 참조형 변수를 저장
- 생성 시점에 작은 연속된 공간을 요청해서 참조형 변수들을 담아놓음
- 값이 추가될 때 더 큰 공간이 필요하면 더 큰 공간을 받아서 저장함 ArrayList<Integer> intList = new ArrayList<Integer>(); // 선언 + 생성
intList.add(99);
intList.add(15);
intList.add(3);
// System.out.println(intList.get(1));
// 두번째 있는 값(15)를 바꿔보자
// intList.set(1,10);
// System.out.println(intList.get(1));
System.out.println(intList.get(0));
// 삭제
intList.remove(0);
System.out.println(intList.get(0));
//전체 삭제 전 리스트 보기
System.out.println(intList.toString());
//전체 삭제메서드 : clear()
intList.clear();
//삭제 후 전체 조회
System.out.println(intList.toString());
LinkedList<Integer> linkedList = new LinkedList<Integer>();
linkedList.add(5);
linkedList.add(10);
linkedList.add(3);
System.out.println(linkedList.get(0));
System.out.println(linkedList.get(1));
System.out.println(linkedList.get(2));
System.out.println(linkedList.toString()); // 조회할 때 ArrayList보다 느리다
linkedList.add(200);
System.out.println(linkedList.toString()); //200이라는 요소 추가
linkedList.add(2,4);
System.out.println(linkedList.toString()); // 인덱스 2번에 4라는 요소 추가
linkedList.set(1,30);
System.out.println(linkedList.toString());
linkedList.remove(1);
System.out.println(linkedList.toString());
linkedList.clear();
System.out.println(linkedList.toString());
Stack<Integer> intStack = new Stack<Integer>();
intStack.push(10);
intStack.push(15);
intStack.push(1);
// 다 지워질 때 까지 출력
while (!intStack.isEmpty()){
System.out.println(intStack.pop()); // push로 쌓아놓았던 것 pop이 실행되면서 위에부터 출력
// 1 -> 15 -> 10
}
// 다시 추가
intStack.push(10);
intStack.push(15);
intStack.push(1);
// peek
System.out.println(intStack.peek());
System.out.println(intStack.size());
Queue<Integer> intQueue = new LinkedList<>(); // Queue 선언, 생성
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
while (!intQueue.isEmpty()){
System.out.println(intQueue.poll());
}
// 다시 추가
intQueue.add(1);
intQueue.add(5);
intQueue.add(9);
intQueue.add(10);
// peek
System.out.println(intQueue.peek());
System.out.println(intQueue.size());
Set<Integer> intSet = new HashSet<>(); // 선언 및 생성
intSet.add(1);
intSet.add(12);
intSet.add(5);
intSet.add(9);
intSet.add(2);
intSet.add(12);
for (Integer value : intSet){
System.out.println(value);
}
//contains
System.out.println(intSet.contains(2));
System.out.println(intSet.contains(5));
Map<String,Integer> intMap = new HashMap<>();
// 키값
intMap.put("일",11);
intMap.put("이",12);
intMap.put("삼",13);
intMap.put("삼",14);//중복 키값
intMap.put("삼",15);//중복 키값
// Key값 전체 출력(향상된 for문)
for (String key: intMap.keySet()){
System.out.println(key);// 중복이 제거되고 출력 : 3
}
// Value값 전체 출력(향상된 for문)
for (Integer value: intMap.values()){
System.out.println(value);// 중복이 제거되고 출력 : 12, 11,15 증벅값 중 마지막으로 덮어씀
}
System.out.println(intMap.get("삼"));
👀
많이 사용하지 않았던 부분을 배워서 시간이 좀 오래 걸렸다 상황에 맞게 잘 사용하려면 우선 오늘 공부한 collection의 특징을 잘 알아둬야 할 거 같다.
😥 반성..
원래는 1월 1일까지 강의를 다 듣고 싶었는데 예기치 않게 생긴 일정과 이해하는 데 좀 걸리는 부분에서 시간이 많이 걸렸다.. 또 돌이켜보니 1일까지 1회독 목표는 조금 무리였던 거 같다..... 앞으로는 목표와 계획을 잘 세워서 성취감 가져가면서 공부하고 싶다!
📝 다시 세워보는 계획
남은 강의의 시간이 8시간 정도 된다 듣고 끝내기보다 공부하는 시간도 같이 갖는 게 좋을 거 같아서 1월 3일까지 다 들어보도록 하겠다!