일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- bastion host
- dreamhack
- Repository
- Mac
- 자바
- 네트워크
- vlan
- vector
- 인공지능
- 온프레미스
- abex'crackme
- Python
- AI
- cmd
- 스위치
- 크롤러
- 머신러닝
- 라우터
- Java
- 머신러닝 프로세스
- AWS
- Reversing
- Firewall
- docker
- Screening Router
- CISCO
- STP
- RIP
- 리버싱
- 암호학
- Today
- Total
Haekt‘s log
[JAVA] Collection Framework 본문
Collection Framework 은 다수의 데이터를 쉽고,
효과적으로 다루기 위해, 표준화된 방법을 제공하는 클래스들을 모아놓은 집합이다.
쉽게 생각하면, 크기 지정 필요없는 편리한 배열이라고 생각하면 된다.
이것을 사용하면 배열의 단점인 길이고정을 해결할수 있다.
java.util.Collection 에 속해있어, 상단에 import java.util.* 을 입력해 사용할 수 있다.
Collection Framwork의 주요 인터페이스는 다음과 같다.
- List
- Set
- Map
이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만,
구조상의 차이로 인해 Map 인터페이스는 별도로 정의한다.
- List, Set, Map 의 구현 클래스
*<E> : 사용자가 타입을 정함. ex) Vector<String>
*<K, V> : 키와 값을 뜻함 ex) <Integer, String>
*List<E>
List 는 데이터의 순서가 있어, 들어온 순서대로 저장된다. 데이터의 중복이 가능하다.
List에 2, 3, 5, 4, 1, 1 을 넣으면, 배열 번호가 생기며 2 는 [0], 3은[1], 5는[2], 4는[3] 이런 순서대로 들어가
구현 클래스로는 Vector, ArrayList 등이 있다.
*순서가 있다는 뜻은 숫자 순서대로 들어간다는 뜻이 아님. 말그대로 들어온 순서대로 저장된다는 뜻
*Set<E>
Set은 데이터의 순서가 없어 정렬되어 저장된다. 데이터의 중복이 불가능하다.
Set에 2, 3, 5, 4, 1, 1 을 넣으면, 넣은 순서 상관없이 정렬되고, 중복은 제거되어 1, 2, 3, 4, 5 로 들어간다.
구현 클래스로는 HashSet, TreeSet이 있다.
*Map<K , V>
Map은 키를 통해 저장하므로, 데이터의 순서가 없이 저장된다. 키의 중복은 불가능 하나, 값의 중복은 가능하다.
K 는 Key , V 는 Value이다.
구현 클래스로는 HashMap, TreeMap 등이 있다.
- List, Set, Map 예시 (Vector, HashSet, HashSet)
import java.util.*;
public class v1 {
public static void main(String[] args) {
Vector<Integer> v=new Vector<Integer>(); // List의 구현 클래스중 하나
HashSet<Integer> hs=new HashSet<Integer>(); // Set의 구현 클래스중 하나
HashMap<Integer,String> hm=new HashMap<Integer, String>(); // Map의 구현 클래스중 하나
v.add(2);
v.add(1);
v.add(14);
v.add(1);
hs.add(2);
hs.add(1);
hs.add(14);
hs.add(1);
hm.put(1, "BTS");
hm.put(2, "Highlight");
hm.put(3, "NCT");
System.out.println("\nv size :"+v.size());
System.out.println("v :"+v);
System.out.println("v[0] :"+v.get(0));
System.out.println("v[1] :"+v.get(1));
System.out.println("v[2] :"+v.get(2));
System.out.println("v[3] :"+v.get(3));
System.out.println("\nhs size :"+hs.size());
System.out.println("hs :"+hs);
System.out.println("\nhm size : "+hm.size());
System.out.println("hm : "+hm);
System.out.println("hm[1] :"+hm.get(1));
System.out.println("hm[2] :"+hm.get(2));
System.out.println("hm[3] :"+hm.get(3));
}
}
-결과
* v : 순서 있음. 중복 가능
* hs : 순서 없음. 중복 불가
* hm : 순서없음. 키는 중복불가, 값은 중복가능
* v : Vector, hs : HashSet, hm : HashSet
Vector, HashSet, HashSet에 대한 자세한 정보는 아래 링크에서 살펴보자.
Vector (Java SE 18 & JDK 18) (oracle.com)
HashSet (Java SE 18 & JDK 18) (oracle.com)
HashMap (Java SE 18 & JDK 18) (oracle.com)
'언어 > JAVA' 카테고리의 다른 글
[JAVA] Vector 의 사용법 (0) | 2022.10.04 |
---|---|
[JAVA] 배열 선언 방법 (1) | 2022.10.04 |
[JAVA] 추상 메소드 abstract란? (0) | 2022.10.03 |
[JAVA] interface란? (1) | 2022.10.03 |
[JAVA] 접근 제어 (2) | 2022.10.03 |