컴퓨터는 잘못이 없다..

[JAVA]컬렉션 프레임워크 본문

공부/JAVA

[JAVA]컬렉션 프레임워크

도토리까꿍v 2024. 4. 21. 08:31
Contents 접기

#핵심 요약

  •  컬렉션 프레임워크
    • 여러 데이터를 편리하게 관리할 수 있게 만들어 놓은 것
    • 자료구조 및 알고리즘을 구조화
    • 대표 인터페이스 : List, Set, Map 인터페이스
  • 컬렉션 프레임워크 상속구조

  • List 인터페이스
    • 순서가 있는 데이터의 집합
    • 데이터 중복 허용
    • 대표 구현 클래스
      • ArrayList
      • LinkedList
      • Vector
  • Set 인터페이스
    • 순서가 없는 데이터의 집합
    • 데이터의 중복 허용 하지 않음
    • 대표 구현 클래스
      • HashSet
      • TreeSet
  • Map 인터페이스
    • 키와 값의 쌍으로 이루어진 데이터 집합
    • 순서를 유지하지 않음
    • 대표 구현 클래스
      • HashMap
      • TreeMap

#소스 코드

컬렉션 프레임워크 예

// Java 프로그래밍 - 컬렉션 프레임워크

import java.util.*;

public class Main {

    public static void main(String[] args) {

//      1. List
//        1-1. ArrayList
        ArrayList list1 = new ArrayList();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        System.out.println("list1 = " + list1);
        list1.remove(Integer.valueOf(2)); //그냥 2를 쓰면 index로 인식하므로 숫자는 왼쪽처럼 입력해준다.
        System.out.println("list1 = " + list1);
        list1.add(0, 10);
        System.out.println("list1 = " + list1);
        System.out.println("list1.size() = " + list1.size());
        System.out.println("list1.contains(1) = " + list1.contains(1));
        System.out.println("list1.indexOf(10) = " + list1.indexOf(10));
        //출력결과
//        list1 = [1, 2, 3]
//        list1 = [1, 3]
//        list1 = [10, 1, 3]
//        list1.size() = 3
//        list1.contains(1) = true
//        list1.indexOf(10) = 0


//      1-2. LinkedList
        System.out.println("== LinkedList ==");
        LinkedList list2 = new LinkedList();
        list2.add(1);
        list2.add(2);
        list2.add(3);
        System.out.println("list2 = " + list2);
        list2.addFirst(10);
        list2.addLast(20);
        System.out.println("list2 = " + list2);
        list2.remove(Integer.valueOf(1));
        System.out.println("list2 = " + list2);
        list2.removeFirst();
        list2.removeLast();
        System.out.println("list2 = " + list2);
        System.out.println("list2.size() = " + list2.size());
        //출력결과
//        list2 = [1, 2, 3]
//        list2 = [10, 1, 2, 3, 20]
//        list2 = [10, 2, 3, 20]
//        list2 = [2, 3]
//        list2.size() = 2

//      2. Set
//      2-1. HashSet
        System.out.println("== HashSet ==");
        HashSet set1 = new HashSet();
        set1.add(1);
        set1.add(2);
        set1.add(3);
        System.out.println("set1 = " + set1);
        set1.remove(1);  //Set은 index로 인식하는게 아니어서 지우려는 데이터 바로 쓸 수 있다.
        System.out.println("set1 = " + set1);
        set1.add(2); //중복 데이터 허용 불가로 2가 2개 생기지 않는다.
        set1.add(3); //증복 데이터 허용 불가로 3이 2개 생기지 않는다.
        System.out.println("set1 = " + set1);
        System.out.println("set1.size() = " + set1.size());
        System.out.println("set1.contains(2) = " + set1.contains(2));
        //출력결과
//        set1 = [1, 2, 3]
//        set1 = [2, 3]
//        set1 = [2, 3]
//        set1.size() = 2
//        set1.contains(2) = true

//      2-2. TreeSet
        System.out.println("== TreeSet ==");
        TreeSet set2 = new TreeSet();
        set2.add(1);
        set2.add(2);
        set2.add(3);
        System.out.println("set2 = " + set2);
        set2.remove(2); //index로 인식하는게 아니어서 지우려는 데이터 바로 쓸 수 있다.
        System.out.println("set2 = " + set2);
        set2.clear(); //전부 지운다.
        System.out.println("set2 = " + set2);
        set2.add(10);
        set2.add(5);
        set2.add(15);
        set2.add(15);
        System.out.println("set2 = " + set2);
        System.out.println("set2.first() = " + set2.first());
        System.out.println("set2.last() = " + set2.last());
        System.out.println("set2.lower(10) = " + set2.lower(10)); //10보다 작은 값들을 출력
        System.out.println("set2.higher(10) = " + set2.higher(10)); //10보다 큰 값들을 출력
        //출력결과
//        set2 = [1, 2, 3]
//        set2 = [1, 3]
//        set2 = []
//        set2 = [5, 10, 15]
//        set2.first() = 5
//        set2.last() = 15
//        set2.lower(10) = 5
//        set2.higher(10) = 15

//      3. Map
//      3-1. HashMap
        System.out.println("== HashMap ==");
        HashMap map1 = new HashMap();
        map1.put(1, "kiwi");
        map1.put(2, "apple");
        map1.put(3, "mango");
        System.out.println("map1 = " + map1);
        
        map1.remove(2);
        System.out.println("map1 = " + map1);
        System.out.println("map1.get(1) = " + map1.get(1));

//      3-2. TreeMap
        System.out.println("== TreeMap ==");
        TreeMap map2 = new TreeMap();
        map2.put(10, "kiwi");
        map2.put(5, "apple");
        map2.put(15, "mango");
        System.out.println("map2 = " + map2);

        System.out.println("map2.firstEntry() = " + map2.firstEntry());
        System.out.println("map2.firstKey() = " + map2.firstKey());
        System.out.println("map2.lastEntry() = " + map2.lastEntry());
        System.out.println("map2.lastKey() = " + map2.lastKey());
        System.out.println("map2.lowerEntry(10) = " + map2.lowerEntry(10));
        System.out.println("map2.higherEntry(10) = " + map2.higherEntry(10));

        //출력 결과
//        map2 = {5=apple, 10=kiwi, 15=mango}
//        map2.firstEntry() = 5=apple
//        map2.firstKey() = 5
//        map2.lastEntry() = 15=mango
//        map2.lastKey() = 15
//        map2.lowerEntry(10) = 5=apple
//        map2.higherEntry(10) = 15=mango

    }
}

 

 

컬렉션 프레임워크 연습문제

// Practice
// 로또 번호 만들기

import java.util.*;

public class Practice {
    public static void main(String[] args) {

        HashSet set = new HashSet();

        for (int i = 0; set.size() < 6; i++) {
            int num = (int)(Math.random() * 45) + 1; // (Math.random() * 45) : 0~44까지의 숫자가 랜덤으로 나옴
            set.add(num);
        }

        LinkedList list = new LinkedList(set); //set을 LinkedList로ㅋ
        Collections.sort(list); //리스트 정렬
        System.out.println("로또 번호: " + list);
    }
}

'공부 > JAVA' 카테고리의 다른 글

[JAVA]람다식  (1) 2024.04.27
[JAVA]예외 처리  (0) 2024.04.20
[JAVA]콘솔 입출력, 파일 입출력 (+printf 예제)  (0) 2024.04.20
Comments