컬렉션 (collection)

ssh·2023년 12월 4일
0

dart

목록 보기
3/22

List

개요

  • 순서대로 쌓여있는 구조 (아이템의 중복을 허용)
  • list를 만드는 방법
    1. var 키워드를 사용하는 방법,
      var numbers = [1, 2, 3, 4,];
    2. 자료형을 명시하는 방법
      List numbers = [1, 2, 3, 4,];
  • 가능할 때는 var을 쓰며, 자료형을 명시하는 방법은 class를 다룰 때 쓴다.
  • dart에서는 모든 것이 class이므로 list 또한 많은 메소드를 가지고 있다.
  • 생성방법
    빈 리스트로 초기화
    void main() {
        var numbers = [1, 2, 3, 4,];
            numbers.first; // 첫번째 요소를 가져옴
            numbers.last; // 마지막 요소를 가져옴
    }
    generate() 사용
    List<int> myList = List.generate(5, (index) => index * 2);

Set

  • 순서가 없는 집합 (중복 x)

사용방법

  1. var을 사용
    • var numbers = {1, 2, 3};
  2. 자료형 명시
    • Set numbers = {1, 2, 3};
  • list는 대괄호를 쓰며 set은 중괄호를 쓴다는 것과 set의 요소들은 유니크하다는 것이다.
  • list는 같은 요소가 여러개 반복될 수 있지만, set은 중복이 허용되지 않는다.
  • Set에 속한 모든 아이템들이 유니크해야될 때 사용한다.
  • 유니크할 필요가 없다면 List를 사용하면 된다.
    • 코드
      void main() {
        var number = {
          1,
          2,
          3,
          4,
        };
      
        Set<int> numbers = {
          1,
          2,
          3,
          4,
        };
        // list 와 set의 차이 set에 속한 모든 아이템들은 유니크하다
        numbers.add(1);
        numbers.add(1);
        numbers.add(1);
        print(numbers);
        
         List<int> numberss = [
          1,
          2,
          3,
          4,
        ];
        numberss.add(1);
        numberss.add(1);
        numberss.add(1);
        print(numberss);
      }
      // 요소가 하나만 있어야 한다면 set을 사용
      // unique할 필요가 없다면 list사용
  • 자동으로 중복처리
    • 코드1
      void main() {
        // Set
        final Set<String> names = {
          'Code Factory',
          'Flutter',
          'Black Pink',
        };
      
        print(names);
      
        names.add('Jenny'); // 추가
      
        print(names);
      
        names.remove('Jenny'); // 제거
      
        print(names);
      
        print(names.contains('Flutter')); // 값이 존재하는지 안하는지 알 수 있다
      }
    • 코드2
      void main() {
        Set blackPinkSet = {
          '로제',
          '지수',
          '제니',
          '리사',
        };
      
        final newSet = blackPinkSet.map((x) => '블랙핑크 $x').toSet();
      
        print(newSet);
      }

Map

  • 키(key)와 값(value)의 쌍으로 저장 (키(key)는 중복x)

  • 일반적으로 맵은 key와 value를 연결하는 객체입니다. 키와 값 모두 모든 유형의 객체가 될 수 있다.

  • 각 키는 한 번만 발생하지만 동일한 값을 여러 번 사용할 수 있다.

  • var을 사용하면 컴파일러가 key와 value를 유추해서 보여준다.

  • Key는 String, Value는 Object 형태

  • Dart에서는 모든 자료형이 Object로부터 생긴다. ->

    • object는 기본적으로 어떤 자료형이든지 될 수 있고 명시적으로 정의할 수 있다.

      • 코드

        void main() {
          Map<String, String> harryPotter = {
            'Harry Potter': '해리포터',
            'Ron Weasley': '론 위즐리',
            'Hermione Granger': '헤르미온느 그레인저',
          };
        
          final result = harryPotter.map((key, value) => MapEntry(
                'Harry Potter Character $key',
                '해리포터 캐릭터 $value',
              ));
        
          print(harryPotter);
          print(result);
        
          final keys =
              harryPotter.keys.map((x) => 'Harry Potter Character $x').toList();
          final values = harryPotter.keys.map((x) => '해리포터 $x').toList();
        
          print(keys);
          print(values);
        }

0개의 댓글

관련 채용 정보