[Java] 컬렉션(Collection), 제네릭(Generic) - Set, List, Map

2022. 5. 20. 17:03·Language/Java

컬렉션, 제너릭

컬렉션 : 자료구조 데이터를 저장하는 방식

  • 배열은 순차적으로 저장, 중복된 데이터를 저장할 수 있다.

Set 컬렉션 클래스 : 순서가 없다. 중복된 데이터 허용X

1. HashSet

  • 요소를 순서에 상관없이 저장, 중복된 값은 저장X
HashSet<String> hs01 = new HashSet<String>();
HashSet<String> hs02 = new HashSet<String>(); 

2. TreeSet 컬렉션 클래스

- 요소를 순서에 상관없이 저장, 중복된 값 저장 X, 작은값부터 순서대로 정렬함

TreeSet<Integer> ts = new TreeSet<Integer>();
ts.add(30);
ts.add(40);

Set 메소드

add() 메소드 : 객체에 요소를 저장

// add() 메소드를 이용한 요소의 저장
hs01.add("홍길동");
hs01.add("이순신");
System.out.println(hs01.add("임꺽정")); 
System.out.println(hs01.add("임꺽정")); // 중복된 요소의 저장

size() 메소드 : 요소의 개수를 리턴

hs02.add("임꺽정");
hs02.add("홍길동");
hs02.add("이순신");
System.out.println(hs02.size()); //3

List 컬렉션 클래스 : 순서가 있다. 중복된 데이터 허용

ArrayList 클래스

- 배열을 이용한 요소 저장, 순서 저장됨, 중복된 값도 저장됨

ArrayList<Integer> arrList = new ArrayList<Integer>();

메소드

add() 메소드 : 객체에 요소를 저장

lnkList.add("넷");
lnkList.add("둘");
// add() 메소드를 이용한 요소의 저장

get() 메소드 : 요소의 출력

// for 문과 get() 메소드를 이용한 요소의 출력
for (int i = 0; i < lnkList.size(); i++) {
    System.out.print(lnkList.get(i) + " ");
} // 넷 둘

Map 컬렉션 클래스 : 키와 값 한쌍으로 저장, 키는 중복X

  • 키와 값을 하나의 쌍으로 저장함(key-value 방식)
  • key란 value를 찾기 위한 이름의 역할
  • 키(key) : 컬렉션 내의 키 중에서 유일해야 한다
  • 값(value) - 키와 달리 데이터의 중복을 허용한다.

HashMap<K, V> 클래스

HashMap<String, Integer> hm = new HashMap<String, Integer>();

메소드

put() 메소드 : 요소의 저장

hm.put("삼십", 30);
hm.put("십", 10);
hm.put("사십", 40);
hm.put("이십", 20);

remove() 메소드 : 요소의 제거

hm.remove("사십");

keySet(), get() 메소드

  • keySet() : map의 key값을 모아서 Set형태로 반환
  • get() : 파라미터로 key값을 전달시, 해당 key의 value를 리턴
public Set<K> keySet() //map의 key값을 모아서 Set형태로 반환
public V get(Object key) // 파라미터로 key값을 전달시, 해당 key의 value를 리턴
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class HashMapPrint {
    public static void main(String[] args) {
    
        // HashMap 준비
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Orange");
        
       // for loop (keySet())
        Set<Integer> keySet = map.keySet(); //먼저 map.keySet() 메소드를 호출하여, key 목록을 Set 형태로 가지고 왔습니다
        for (Integer key : keySet) {
            System.out.println(key + " : " + map.get(key));
        }  //1 : Apple
    }      //2 : Banana
}          //3 : Orange

containsKey() 메소드 : map에 파라미터로 입력받은 값과 같은 값이 있으면 true를 리턴합니다.

import java.util.HashMap;
import java.util.Map;
public class CheckExistHashMap {
    public static void main(String[] args) {
    
        // HashMap 준비
        Map<Integer, String> map = new HashMap<Integer, String>();
        map.put(1, "Apple");
        map.put(2, "Banana");
        map.put(3, "Orange");
        map.put(null, "Tomato");
        
        // 특정 key값 존재여부 체크 (containsKey())
        System.out.println(map.containsKey(1)); // true
        System.out.println(map.containsKey(5)); // false
        System.out.println(map.containsKey(null)); // true
    }
}
반응형
'Language/Java' 카테고리의 다른 글
  • StringBuilder란? StringBuilder 사용 방법
  • [JAVA] Stream - Collector(콜렉터), Stream을 List,Set으로 반환
  • Optional : null값에 대한 처리
  • [Java] Stream
LightSource
LightSource
어제보단 발전한 오늘의 나를 위한 블로그
    반응형
  • LightSource
    LightSourceCoder
    LightSource
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Git (4)
      • Language (6)
        • Java (6)
      • Back-End (63)
        • Spring Boot (4)
        • MyBatis (1)
        • Oracle (1)
        • PL SQL (3)
        • JPA (26)
        • Spring Data JPA (5)
        • Spring MVC (8)
        • Spring (12)
        • Spring Security (2)
        • Redis (1)
      • Front-End (38)
        • 아이오닉 (2)
        • JSP (7)
        • JavaScript (4)
        • React (16)
        • TypeScript (3)
        • Angular (6)
      • AWS (1)
      • CI & CD (1)
      • 개발지식 (13)
        • 네트워크 (9)
        • CS 지식 (4)
      • 데이터모델링 (2)
      • Tool (1)
      • 프로젝트 (5)
      • 독후감 (2)
      • 잡생각 (0)
      • 면접 준비 (1)
      • 알고리즘 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배요소열추가
    리액트
    react
    배열요소삭제
    배열요소수정
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
LightSource
[Java] 컬렉션(Collection), 제네릭(Generic) - Set, List, Map
상단으로

티스토리툴바