Flutter (앱 개발)/Dart 코드 첨부 파일

[Dart 변수와 데이터 타입] Dart의 리스트(List)와 Set, Map 컬렉션 개념(명령 프롬프트 첨부 파일 제공)

Ize𓆜 2025. 2. 23. 21:59
728x90
728x90

 

 

Dart의

리스트(List), Set, Map

컬렉션 개념 정리 📌🔍

 

Dart에서는 데이터를

효율적으로 저장하고 관리하기 위해

List, Set, Map과 같은

컬렉션(Collection) 타입을 제공합니다.


이들은

배열, 집합, 키-값 구조

표현할 때 사용되며,

Flutter UI 및 상태 관리에서

중요한 역할을 합니다.

 

이번 포스팅에서는

Dart의 List, Set, Map의 개념과 활용법

예제와 함께 정리하겠습니다. 🚀

 


 

먼저

더 많은 정보, 혹은


순서대로 포스팅을 보고 싶다면


아래 노션을 확인해주세요. 

 



https://mongmung-i.notion.site/Flutter-1a39b1e2cdaa80319a0fc2a89281dc71?pvs=4

 

Flutter 어플 개발 일지 | Notion

Made with Notion, the all-in-one connected workspace with publishing capabilities.

mongmung-i.notion.site

https://mongmung-i.notion.site/19f9b1e2cdaa80a984ade6141a87fd29?pvs=4

 

창업 트랙 사전 캠프 𓆲 | Notion

이 곳은 창업 트랙 사전 캠프 진행 사항을 정리하는 곳입니다.

mongmung-i.notion.site

 

 


Ⅰ. 서론: 컬렉션(Collection) 타입이 중요한 이유 🤔

 

데이터 저장 및 관리의 필요성

 

배열(List), 집합(Set), 키-값 구조(Map) 데이터를 저장하는 기본 방식
Flutter UI에서 리스트뷰, 드롭다운, 필터링 등에 사용됨
네트워크 요청(JSON 데이터) 및 상태 관리(State Management)에서 필수적

효율적인 데이터 관리가 필요하므로 컬렉션 개념을 정확히 이해해야 함! 🚀


Dart에서 제공하는 주요 컬렉션 타입

 

List → 배열처럼 사용 (순서 유지, 중복 허용)
Set → 중복을 허용하지 않는 집합 (순서 보장 X)
Map → 키-값(Key-Value) 구조의 데이터 저장 (딕셔너리 개념)

이제 각 컬렉션 타입을 하나씩 살펴보겠습니다! 🎯


Ⅱ. 본론: List, Set, Map 컬렉션 개념과 활용법 🏗️

 

Step 1: List (배열) 개념 및 주요 메서드 활용

 

List는 여러 개의 데이터를

 순서대로 저장하는 컬렉션 타입입니다.


배열과 유사하며,

 중복된 값을 허용하고

 각 요소에 접근할 때

 인덱스(0부터 시작)를 사용합니다.

 

 

  • 순서가 있는 데이터를 저장할 때 적합합니다.
  • 중복된 데이터를 포함할 수 있으며, 필요할 때 특정 값을 삭제하거나 추가할 수 있습니다.
  • 배열처럼 인덱스 번호를 사용하여 요소를 접근할 수 있습니다.

 


List란?

  • 여러 개의 값을 순서대로 저장하는 배열 형태의 컬렉션
  • 인덱스를 사용하여 값에 접근 가능 (0부터 시작)
  • 중복 값을 허용함
void main() {
  List<String> fruits = ['Apple', 'Banana', 'Cherry'];
  
  print(fruits[0]); // Apple
  print(fruits.length); // 3
}

List란.txt
0.00MB

 

 

List 주요 메서드

void main() {
  List<int> numbers = [1, 2, 3];

  numbers.add(4);  // 리스트에 값 추가
  numbers.remove(2);  // 특정 값 삭제
  numbers.insert(1, 10);  // 특정 위치에 값 삽입

  print(numbers);  // [1, 10, 3, 4]
}

List 주요 메서드.txt
0.00MB

 

 

반복문을 활용한 List 순회

void main() {
  List<String> names = ['Alice', 'Bob', 'Charlie'];

  for (var name in names) {
    print(name);
  }
}

반복문을 활용한 List 순회.txt
0.00MB

 

 

💡 활용 예시:

  • Flutter UI에서 리스트뷰(ListView)를 구성할 때
  • 사용자 입력 데이터를 순서대로 저장할 때 (예: 최근 검색어 목록, 채팅 메시지 리스트)
  • 반복문을 사용하여 특정 데이터를 순차적으로 처리할 때

Step 2: Set (중복 없는 집합) 개념 및 활용 보완 설명

 

Set이란?

 

Set은 중복된 데이터를 

허용하지 않는 컬렉션 타입입니다.


리스트와 비슷하지만

 중복을 자동으로 제거하며, 

데이터의 순서를 보장하지 않습니다.

 

void main() {
  Set<int> uniqueNumbers = {1, 2, 3, 3, 4, 5};

  print(uniqueNumbers); // {1, 2, 3, 4, 5} (중복 제거)
}

 

 

  • 중복 데이터가 들어오면 자동으로 제거되므로 데이터 정리가 필요할 때 유용합니다.
  • 데이터를 빠르게 검색하거나 중복 체크가 필요할 때 사용됩니다.

 

💡 활용 예시:

  • 회원가입 시 중복된 이메일을 방지할 때 (Set을 사용하여 중복 체크)
  • 게시판 태그 시스템에서 중복된 태그를 허용하지 않을 때
  • 랜덤한 데이터를 저장하고 중복 없이 선택할 때

 


Step 3: Map (키-값 쌍) 개념 및 활용 보완 설명

 

 

Map은 Key-Value(키-값) 형태로

 데이터를 저장하는 컬렉션 타입입니다.


리스트와 다르게 

고유한 키(Key)를 사용하여 

특정 값을 빠르게 조회할 수 있습니다.

void main() {
  Map<String, int> scores = {'Alice': 85, 'Bob': 90};

  print(scores['Alice']); // 85
}

 

  • 리스트와 달리 특정 요소에 접근할 때 인덱스가 아닌 키(Key)를 사용합니다.
  • Key는 중복될 수 없지만, Value는 중복될 수 있습니다.
  • 빠른 데이터 검색이 필요할 때 활용됩니다.

 

 

💡 활용 예시:

  • 사용자의 정보를 저장할 때 (user['name'], user['email'])
  • JSON 데이터 처리 (서버에서 응답을 받을 때 Map 형태로 반환됨)
  • Flutter의 상태 관리에서 특정 값을 저장하고 빠르게 가져올 때

Step 4: 컬렉션의 변형 및 변환 (List ↔ Set ↔ Map 변환) 보완 설명

 

 

컬렉션 타입 간 변환을 통해 

데이터를 더 효율적으로 관리할 수 있습니다.


어떤 작업을 수행해야 하는지에 따라

 List, Set, Map을 유동적으로 변환할 수 있습니다.

 

 

List → Set 변환 (중복 제거)

 


리스트에 있는

중복된 데이터를 제거하고 싶을 때

Set으로 변환할 수 있습니다.

void main() {
  List<int> numbers = [1, 2, 2, 3, 4, 4, 5];
  Set<int> uniqueNumbers = numbers.toSet();

  print(uniqueNumbers); // {1, 2, 3, 4, 5}
}

 

💡 활용 예시:

  • 중복된 태그 데이터를 자동으로 정리할 때
  • 한 번만 실행해야 하는 고유한 값 목록을 유지할 때

 

Set → List 변환 (순서 유지 필요 시)

 


Set은 순서가 보장되지 않기 때문에,

다시 순서를 유지하려면 List로 변환해야 합니다.

void main() {
  Set<String> uniqueNames = {'Alice', 'Bob', 'Charlie'};
  List<String> nameList = uniqueNames.toList();

  print(nameList); // ['Alice', 'Bob', 'Charlie']
}

💡 활용 예시:

  • 정렬이 필요한 데이터 (예: 가나다순, 날짜순 정렬)
  • Set에 저장된 값들을 UI에서 순서대로 보여주고 싶을 때

 

 

List → Map 변환

 


리스트 데이터를 키-값 형태로 변환하여

보다 체계적으로 관리할 수 있습니다.

void main() {
  List<String> fruits = ['Apple', 'Banana', 'Cherry'];
  Map<int, String> fruitMap = {for (int i = 0; i < fruits.length; i++) i: fruits[i]};

  print(fruitMap); // {0: Apple, 1: Banana, 2: Cherry}
}

 

 

💡 활용 예시:

  • 상품 리스트에서 고유한 ID를 키로 사용하여 빠르게 조회할 때
  • 리스트 데이터를 Key-Value 구조로 변경하여 JSON 데이터와 연동할 때

Ⅲ. 컬렉션 타입을 효과적으로 활용하는 방법

 

컬렉션 선택 기준

 

순서가 중요하고 중복을 허용해야 한다면 → List
중복을 방지하고 빠른 검색이 필요하다면 → Set
키-값 쌍으로 데이터를 관리해야 한다면 → Map


성능을 고려한 데이터 저장 방식

 

대량의 데이터를 처리할 때는 Set을 활용하여 중복을 자동 제거
빠른 검색이 필요할 경우 Map을 활용하여 Key 기반 조회
Flutter UI에서 리스트뷰를 사용할 경우 List가 적합

컬렉션 타입을 적절히 활용하면 성능과 가독성을 동시에 향상 가능! 🚀

728x90
728x90