티스토리 뷰
1-21. 컬렉션 - 개념설명
📌 컬렉션(Collection)
자바에서 자료구조를 표현하는 인터페이스.
다수의 데이터를 다루기 위한 자료구조를 표현하고 사용하는 클래스의 집합.
- List : 순서가 있는 데이터의 집합, 데이터 중복 허용
- Set : 순서를 유지하지 않는 데이터의 집합, 데이터 중복 허용X
- Map : 키(key)와 값(value)의 쌍으로 이루어진 데이터의 집합.
순서는 유지되지 않으며 키는 중복을 허용되지 않고 값은 중복을 허용합니다.
- Stack : 마지막에 넣은 데이터를 먼저 꺼내는 자료구조
- Queue : 먼저 넣은 데이터를 먼저 꺼내는 자료구조
1-22. 컬렉션 - 리스트, 셋, 맵
*배열은 사이즈가 고정되어야 하기 때문에 Arraylist를 사용함
✔ List
import java.util.ArrayList;
import java.util.Collections;
import java.util.List; //java.util 의 List 라는 인터페이스를 쓴다
public class Main {
public static void main(String[] args) {
//List <어떤 타입의 자료구조를 담을지> 선언
List<Integer> integerList = new ArrayList<>(); //사이즈 지정 안 함
integerList.add(1); //add 하는 순간 사이즈가 맞춰짐(자료가 많아질 수록 크기도 늘어남)
integerList.add(5);
integerList.add(4);
integerList.add(11);
integerList.add(10);
System.out.println(integerList); // [1, 5, 4, 11, 10] 출력됨
Collections.sort(integerList); // list 정렬 -기본 오름차순 정렬
System.out.println(integerList); // [1, 4, 5, 10, 11]
System.out.println(integerList.size()); // 5 element 개수 출력
integerList.remove(4);
System.out.println(integerList); //[1, 4, 5, 10] 11 삭제
}
}
내가 넣은 데이터의 순서 유지됨
- sort( ) 오름차순 정렬.
- size( ) 개수 출력.
- remove(i) i번째 요소 삭제
+ 반복문 활용
//for문
// for(int i=0;i<integerList.size();i++){
// System.out.println(integerList.get(i)); //0부터 index 마지막 자리에 해당하는 i 구할 수 있음
// }
//for each문
for(int current:integerList){
System.out.println(current);
}
//for each문 (index 번호 안 주고 씀) 배열의 요소 하나씩 꺼내서 current 에 할당해줌
- get(i) 0부터 i번째까지 [ ] 배열로 보여주고, 1줄씩 데이터들 보여줌.
*위의 for문과 for each문 결과값은 같음
✔ Set
*int는 숫자 Primitive type 기본 자료형
★ Collection 프레임워크를 쓰기 위해서는, 이 자료 구조를 담는 것은 사실 객체이므로,
객체를 담을 수 있는 type이어야 함 = Reference Type 참조 자료형임.
대신, primitive type(integer, boolean, long 등)에 해당되는 클래스가 Java에 정의되어이 있으므로,
<integer>를 쓰면 int를 쓰는 것과 마찬가지가 됨
1.
Set<Integer> integerSet = new HashSet<>(); //Set 인터페이스, HashSet 은 클래스
integerSet.add(1);
//생략
integerSet.add(8);
System.out.println(integerSet); //[1, 2, 3, 8, 9] 중복 제외, 내가 넣어준 순서 유지 X
데이터의 중복과 순서 유지X
2. 데이터 추가하거나 지우기
Set<String> stringSet = new HashSet<>();
stringSet.add("LA");
//
stringSet.add("Seoul");
System.out.println(stringSet); //[San Francisco, New York, LasVegas, LA, Seoul]
stringSet.remove("Seoul"); //순서가 없으므로 지울 것 지정해야 함
List<String> target = new ArrayList<>();
target.add("New York");
target.add("LasVegas");
stringSet.removeAll(target); //removeAll() 함수 Collection 타입이면 뭐든 올 수 있음
System.out.println(stringSet); //[San Francisco, LA]
- add(" " ) 추가하기
- remove(" ") 지정한 1개 지우기
- removeAll( ) 변수 target으로 추가한 데이터 모두 지우기
3. 포함 여부 확인
System.out.println("LA 포함?" + stringSet.contains("LA")); //LA 포함?true
System.out.println("Seoul 포함?" + stringSet.contains("Seoul")); //Seoul 포함?false
- contains( ) 함수 data가 이 자료구조 안에 있는지 확인하는 함수. boolean true/false를 리턴함.
object 또는 All 의 경우 Collection 받게 됨.
4. 개수 세기와 모두 비우기
System.out.println(stringSet.size()); //2
stringSet.clear();
System.out.println(stringSet); //[]
- size( ) 개수 출력.
- clear ( ) 자료구조 다 지움 [] 빈 자료구조 표현
✔ Map
키(key)와 값(value)을 하나의 데이터로 저장하는 특징을 가짐
1. 데이터 추가
Map<Integer, String> map = new HashMap<>(); //Map<key, value> 선언, 구현체는 HashMap
map.put(1, "apple");
map.put(2, "berry");
map.put(3, "cherry");
System.out.println(map); //{1=apple, 2=berry, 3=cherry} key=value 이렇게 표현됨
- put( ) 추가 ↔ List, Set 은 add( )
< > 꺽쇠가 표현하는 건 제네릭스(Generics)
2. 순서에 맞는 값 가져오고 지우기
System.out.println("1st in map: " + map.get(0)); //1st in map: null
get(Object key) - 우리는 0번이라는 key를 넣어주지 않았으므로 null 나옴.
System.out.println("1st in map: " + map.get(1)); //1st in map: apple
- get( ) 함수는 key를 받아서 value를 리턴하는 함수!
map.remove(2);
System.out.println(map); //{1=apple, 3=cherry}
- remove( )로 index가 아니라 key를 지움
3. 포함 여부 확인
System.out.println(map.containsKey(2)); //false
System.out.println(map.containsValue("cherry")); //true
4. 모두 비우기
map.clear();
System.out.println(map); //{}
1-23. 컬렉션 - 스택, 큐, ArrayDeque
✔ Stack
✔ Queue
'Edu_hanghae99 > Java 문법 뽀개기' 카테고리의 다른 글
[Java] Java 문법 뽀개기 1-18 ~ 1-20 (0) | 2022.11.01 |
---|---|
[Java] Java 문법 뽀개기 1-12 ~ 1-17 (0) | 2022.10.26 |
[Java] Java 문법 뽀개기 1-5 ~ 1-11 (0) | 2022.10.26 |
[Java] Java 문법 뽀개기 1-2 ~ 1-4 (0) | 2022.10.24 |