코드 그라데이션

후발대 14일차 전체 코드 본문

Java/후발대

후발대 14일차 전체 코드

완벽한 장면 2023. 2. 3. 11:02

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