inblog logo
|
나새끼메이커
    TIL (Today I Learned)

    컬렉션 (Collection) - Set, Map

    Eungae's avatar
    Eungae
    Dec 08, 2025
    컬렉션 (Collection) - Set, Map
    Contents
    Set.length.isEmpty / .isNotEmpty.add() / .addAll().remove() / .removeAll().contains() / .containsAll()Map.length.isEmpty / .isNotEmptyname[key]를 통해 검색 가능name[key] = value; 를 통해 키의 값 수정name[key] = value;를 통해 새로운 키와 값의 쌍 추가.remove().containsKey().values

    Set

    Set<타입> [변수 이름] = {요소};

    수학에서의 집합에 해당. 중복되지 않은 값들이 묶인 형태.

    Set<int> numbers = {1, 2, 3, 4, 5};
    
    Set<int> numbers = {}; // 공집합도 가능.또는 var names = <String>{}; 도 가능

    var numbers = {}; 는 안 된다. => Map 타입이 되어버린다.

    • 각각의 요소는 모두 동일한 타입이어야 한다. 다른 타입인 요소가 들어오면 오류 발생.

    • 요소들의 순서가 보장되지 않는다. == index 개념이 없다.

    • 중복된 값이 있으면 하나를 제외하고는 모두 무시한다.

    Set<String> actors = {'박정민', '구교환', '주지훈', '박정민', '이동욱', '박정민'};
    print(actors); // {박정민, 구교환, 주지훈, 이동욱}

    .length

    요소의 개수 구하기

    Set<String> actors = {'박정민', '구교환', '주지훈', '박정민', '이동욱', '박정민'};
    print(actors.length); // 4

    .isEmpty / .isNotEmpty

    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바'};
    print(seobuway.isEmpty); // false
    print(seobuway.isNotEmpty); // true

    .add() / .addAll()

    void main () {
    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바'};
    seobuway.add("그린혼");
    print(seobuway.join(', '));
    } // 즈므로스터리, 비앤타, 비노에올리바, 그린혼
    void main () {
    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼'};
    Set<String> newbies = {'잔물결', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센'};
      seobuway.addAll(newbies);
      
      print(seobuway.length); // 14
      print(seobuway.join(', ')); // 즈므로스터리, 비앤타, 비노에올리바, 그린혼, 잔물결, 명경지수, 지구리워크, 브레드브레드바나나, 윤슬서림, 바담장, 수수하, 딥마켓, 몬테가든, 스미야끼센
    }

    .remove() / .removeAll()

    void main () {
    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
      seobuway.remove("잔물결"); 
      print(seobuway.length);
      print(seobuway.join(', '));
    }
    
    /*
    13
    즈므로스터리, 비앤타, 비노에올리바, 그린혼, 명경지수, 지구리워크, 브레드브레드바나나, 윤슬서림, 바담장, 수수하, 딥마켓, 몬테가든, 스미야끼센
    */
    void main () {
    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
      print(seobuway.length);
      
      seobuway.removeAll({'비앤타','지구리워크','바담장','잔물결'});
      print(seobuway.length);
      
      print(seobuway.join(', '));
    }
    
    /*
    14
    10
    즈므로스터리, 비노에올리바, 그린혼, 명경지수, 브레드브레드바나나, 윤슬서림, 수수하, 딥마켓, 몬테가든, 스미야끼센
    */

    .contains() / .containsAll()

    void main () {
    Set<String> seobuway = {'즈므로스터리', '비앤타', '비노에올리바', '그린혼', '명경지수', '지구리워크', '브레드브레드바나나', '윤슬서림', '바담장', '수수하', '딥마켓', '몬테가든', '스미야끼센', '잔물결'};
      
      print(seobuway.contains("몬테가든")); // true
      print(seobuway.contains("명주상회")); // false
      
    Set<String> myungjudan = {"명주상회", "보리울림", "봉봉방앗간"};
      print(seobuway.containsAll(myungjudan)); // false
      
    seobuway.addAll(myungjudan);
      print(seobuway.length); // 17
      print(seobuway.containsAll(myungjudan)); // true
    }
    

    Map

    Map<key type : value type> name = { key, value };

    Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
    • key들과 value들은 각각 타입이 같아야 한다.

    • key와 value는 서로 다른 타입으로 구성할 수 있다.

    • key는 중복될 수 없지만 value는 중복될 수 있다.

    .length

    요소의 개수 구하기

    Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
    print(price.length); // 3

    .isEmpty / .isNotEmpty

    Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      print(price.isEmpty); // false
      print(price.isNotEmpty); // true

    name[key]를 통해 검색 가능

    Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      print(price["빅웨이브"]); // 8000
      print(price["듀체스"]); // 14000

    name[key] = value; 를 통해 키의 값 수정

    Map<String, int> price = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      
      price["듀체스"] = 16000;
      print(price["듀체스"]); // 16000

    name[key] = value;를 통해 새로운 키와 값의 쌍 추가

    Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      
      beer["카스제로"] = 5000;
      print(beer); // {생맥주: 5000, 빅웨이브: 8000, 듀체스: 14000, 카스제로: 5000}

    .remove()

    Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      
      beer.remove("생맥주");
      print(beer); // {빅웨이브: 8000, 듀체스: 14000}
      print(beer["생맥주"]); // null

    .containsKey()

    void main () {
    Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000};
      
      print(beer.containsKey("생맥주")); // true
      print(beer.containsKey("칭따오")); // false
    }

    .values

    Map<String, int> beer = {"생맥주" : 5000, "빅웨이브" : 8000, "듀체스" : 14000, "카스제로" : 5000};
      
      print(beer.values); // (5000, 8000, 14000, 5000)
      print(beer.values.join(', ')); // 5000, 8000, 14000, 5000

    Share article
    Contents
    Set.length.isEmpty / .isNotEmpty.add() / .addAll().remove() / .removeAll().contains() / .containsAll()Map.length.isEmpty / .isNotEmptyname[key]를 통해 검색 가능name[key] = value; 를 통해 키의 값 수정name[key] = value;를 통해 새로운 키와 값의 쌍 추가.remove().containsKey().values

    나새끼메이커

    RSS·Powered by Inblog