본문 바로가기

Flutter

컬렉션(자료구조)

컬렉션은 여러 값을 하나의 변수에 저장할 수 있는 타입을 의미한다.

주요 컬렉션 타입들은 다음과 같다.

List (리스트)

  • 여러 값을 순서대로 저장하고, 인덱스 번호로 접근 가능한 컬렉션 타입이다.

Map (맵)

  • '키'와 '값'의 형태로 저장하고,'키'를 기반으로 매칭되는 '값'을 바로 접근 가능한 컬렉션 타입이다.

Set (셋)

  • 중복된 데이터를 제거하고 데이터를 저장하는 컬렉션 타입이다.

 

// 코드의 진입점
void main() {

  // List 자료구조 사용해보기
  // 선언과 동시에 초기화
  List<String> myList = ['홍길동', '포도', '사과'];

  // R
  print(' LIST DATA $myList');

  // add 추가
  myList.add('김유신');

  // read : 리스트 계열은 인덱스 번호를 제공 즉, 인덱스 연산 가능
  print(myList[1]);

  // update
  myList[1] = '신사임당';
  print(myList[1]);

  // delete , 2가지 방식 (키값으로 제거 가능, 인덱스 번호로 제거 가능)
  myList.remove('신사임당');
  myList.removeAt(0);
  print(myList);

  myList.remove('신사임당1111111');
  //myList.removeAt(100);  오류 발생

  print(myList.length);  //인덱스 길이 는 = n - 1 = 0, 1  

}
void main() {

  // Map은 키/값 을 사용한다.
  Map<String, int> myDict = {'홍길동' : 1, "포도" : 2, '사과': 3};
  print(myDict.runtimeType);

  // 맵에 새로운 키/값 추가 하는 방법
  myDict['케이트'] = 4;
  print(myDict['케이트']);

  // 읽기
  print(myDict['홍길동']);
  print(myDict.keys);
  print(myDict.values);
  print(myDict.entries);
  // 수정
  myDict['홍길동'] = 100;
  // 삭제
  myDict.remove('홍길동');
  print(myDict);
  
  // map 에 특정 키/값이 있는지 확인 하는 방법 
  print(myDict.containsKey('홍길동'));
  print(myDict.containsKey('케이트'));

  // Map 을 다룰 때 다른 데이터 타입으로 변환해야 하는 경우 --> List
  // 리스트로 변환 하기
  var myDictKeys = myDict.keys;
  var myDictValues = myDict.values;
  print(' 데이터 타입 확인1 :  ${myDictKeys.runtimeType}');
  List<String> myDictKeyList = myDictKeys.toList();
  print(' 데이터 타입 확인2 :  ${myDictKeyList.runtimeType}');
  //List<String> myDictKeyList = myDict.keys.toList();

  // 기존에 존해하는 map 다른 map 데이터를 일과 추가 해야 된다면
  Map<String, int> myDict2 = {'한국': 1, '일본': 2};
  myDict.addAll(myDict2);

  print('---------------------');
  print(myDict);

}
void main() {

  // List -> [], Map -> {}, , Set -> {}
  Set<String> data = {'a', 'b', 'c', 'a'};
  print(data);
  data.add('d');
  data.remove('a');
  print(data);

  // 전체 비우기
  data.clear();
  print(data);

}
728x90

'Flutter' 카테고리의 다른 글

플러터 기본기 다지기 - 1  (1) 2024.11.05
Flutter UI 프레임워크  (4) 2024.11.05
flutter App화면 구현  (1) 2024.09.04
변수  (1) 2024.09.04
프로젝트 구조 살펴보기  (0) 2024.09.04