Notice
Recent Posts
Recent Comments
Link
컴퓨터는 잘못이 없다..
[JAVA]컬렉션 프레임워크 본문
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