코드 그라데이션
후발대 14일차 전체 코드 본문
LinkedList(2), HashSet, HashMap, Iterator(1)
- 컬렉션 프레임워크라고 함은 많은 데이터를 효과적으로 쉽고 편리하게 관리하기 위해서 자바에서 제공해주는 어떤 클래스들의 모음
- 컬렉션 프레임 워크에서는 데이터를 저장하는 자료구조에 따라 다음과 같은 주요 인터페이스를 정의하고 있음
- List 인터페이스
- Set 인터페이스
- Map 인터페이스
- Iterator
- 데이터 처리하는 방법과 문법에 대해 바로 익힌다.
LinkedList(2)
import java.util.LinkedList;
public class _05_LinkedList {
public static void main(String[] args) {
// 링크드 리스트
LinkedList<String> list = new LinkedList<>();
list.add("유재석");
list.add("조세호");
list.add("김종국");
list.add("박명수");
list.add("강호동");
// 데이터 조회(인덱스)
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println("------------");
// 추가
list.addFirst("서장훈");
for(String s : list){
System.out.println(s);
}
System.out.println("-----------");
list.addLast("김희철");
for(String s : list){
System.out.println(s);
}
System.out.println("--------");
System.out.println("학생 추가 전: " + list.get(1));
list.add(1,"김영철");
System.out.println("학생 추가 후 : " + list.get(1));
System.out.println("학생 추가 후 : " + list.get(2));
System.out.println("-----------------");
// 삭제
System.out.println("남은 학생 수 (제외 전) : "+ list.size());
list.remove(list.size()-1);
System.out.println("남은 학생 수 (제외 후) : "+ list.size());
System.out.println("-----------------");
// 처음 학생과 마지막 학생이 전학
for(String s : list) {
System.out.println(s);
}
System.out.println("남은 학생 수 (전학 전) : "+ list.size());
list.removeFirst(); // 처음 데이터 삭제
list.removeLast(); // 마지막 데이터를 삭제
System.out.println("남은 학생 수 (전학 후) : "+ list.size());
for(String s : list) {
System.out.println(s);
}
System.out.println("-----------------");
//변경 (수강권 양도)
list.set(0,"이수근");
System.out.println(list.get(0));
// 확인
System.out.println(list.indexOf("김종국"));
if(list.contains("김종국")){
System.out.println("수강 신청 성공");
}else {
System.out.println("수강 신청 실패");
}
System.out.println("-----------------");
// 전체 삭제
list.clear();
if(list.isEmpty()) {
System.out.println("학생 수 : " + list.size());
System.out.println("리스트가 비었습니다.");
}
System.out.println("-----------------");
// 정렬
list.add("유재석");
list.add("조세호");
list.add("김종국");
list.add("박명수");
list.add("강호동");
// list.add("강호동");
// list.add("강호동");
// list.add("강호동");
Collections.sort(list); // 정렬
for(String s : list) {
System.out.println(s);
}
}
}
HashSet
public class _06_HashSet {
public static void main(String[] args) {
// 세트
HashSet<String> set = new HashSet<>();
set.add("삼겹살");
set.add("쌈장");
set.add("음료");
set.add("소금");
set.add("후추");
set.add("삼겹살");
set.add("깻잎");
set.add("상추");
set.add("삼겹살");
System.out.println("총 구매 상품 수: "+set.size());
//순회
for(String s : set){
System.out.println(s);
}
System.out.println("-----------");
// 확인
if(set.contains("삼겹살")) {
System.out.println("삼겹살 사러 출발");
}
System.out.println("-----------");
// 삭제
System.out.println("총 구매 상품 수 (삼겹살 구매 전) : " + set.size()); //7
set.remove("삼겹살");
System.out.println("총 구매 상품 수 (삼겹살 구매 후) : " + set.size()); //6
System.out.println("---------");
// 전체 삭제
set.clear();
if(set.isEmpty()) {
System.out.println("남은 구매 상품 수 : " + set.size());
System.out.println("집으로 출발");
}
System.out.println("----------");
// 세트 : 중복 허용 X, 순서 보장 X
HashSet<Integer> intSet = new HashSet<>();
// HashSet<Integer> intSet1= new LinkedHashSet<>();
intSet.add(1);
intSet.add(13);
intSet.add(2);
for(int i : intSet) {
System.out.println(i);
}
}
}
HashMap
package com.sparta.hbd04.prac01.prac12;
import java.util.HashMap;
public class _07_HashMap {
public static void main(String[] args) {
// 맵 (Key, Value)
HashMap<String, Integer> map = new HashMap<>();
// HashMap<String, Integer> map1 = new LinkedHashMap<>();
// 데이터 추가
map.put("유재석" , 10);
map.put("박명수" , 5);
map.put("김종국" , 3);
// 이후 추가된 데이터
map.put("서장훈", 15);
System.out.println("총 고객 수 : " + map.size());
System.out.println("-------------");
// 조회
System.out.println("유재석님의 포인트 :" + map.get("유재석"));
System.out.println("유재석님의 포인트 :" + map.get("박명수"));
System.out.println("---------");
// 확인
if(map.containsKey("서장훈")) {
int point = map.get("서장훈");
map.put("서장훈", ++point);
System.out.println("서장훈님의 누적 포인트 : " +map.get("서장훈"));
}else{
map.put("서장훈", 1);
System.out.println("서장훈님 신규 등록 (포인트 1)");
}
System.out.println("-----------");
// 삭제
map.remove("유재석");
System.out.println(map.get("유재석"));
System.out.println("----------");
// 전체 삭제
map.clear();
if(map.isEmpty()){
System.out.println("남은 고객 수: "+ map.size());
System.out.println("가게 접자");
}
System.out.println("------------");
// 다시 고객들이 막 찾아옴
map.put("유재석" , 10);
map.put("박명수" , 5);
map.put("김종국" , 3);
map.put("서장훈", 15);
// key 확인
for(String key : map.keySet()) {
System.out.println(key);
}
System.out.println("---------");
//value 확인
for (int value : map.values()) {
System.out.println(value);
}
System.out.println("-----------");
// Key&Value 함께 확인
for(String key : map.keySet()) {
System.out.println("고객 이름: " + key + "\t포인트 :" + map.get(key));
}
System.out.println("---------");
// 맵: 중복 x, 순서 x
map.put("김종국",10);
map.put("김종국",30);
map.put("김종국",50);
for(String key : map.keySet()) {
System.out.println("고객 이름: " + key + "\t포인트 :"+ map.get(key));
}
System.out.println("-----------");
}
}
Iterator(1)
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class _08_Iterator {
public static void main(String[] args) {
// 이터레이)터
List<String> list = new ArrayList<>();
// List<String> list2 = new LinkedList<>();
list.add("유재석");
list.add("(알 수 없음)");
list.add("김종국");
list.add("(알 수 없음)");
list.add("강호동");
list.add("(알 수 없음)");
list.add("박명수");
list.add("(알 수 없음)");
list.add("조세호");
for(String s : list) {
System.out.println(s);
}
System.out.println("-----------");
// list.iterator();
Iterator<String> it = list.iterator();
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println(it.next());
System.out.println("--------");
it = list.iterator(); // 커서를 처음 위치로 이동
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("----------");
}
}
수업 이후 가져야할 Action item
- 컬렉션에서 사용하는 문법에 대해 익히고 사용법을 이해한다.
728x90
'Java > 후발대' 카테고리의 다른 글
후발대 15일차 전체 코드 (0) | 2023.02.11 |
---|---|
후발대 14일차 설명 포함 코드 (0) | 2023.02.03 |
후발대 13일차 설명 보충 (0) | 2023.02.03 |
후발대 13일차 전체 코드 (0) | 2023.02.03 |
후발대 12일차 전체적 정리 (0) | 2023.01.27 |
Comments