[개발] - 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
반응형