[Flutter]List, Set, Map

임효진·2025년 2월 3일
0

Flutter

목록 보기
23/23

Dart의 기본적인 컬렉션(List, Set, Map)과 Class 개념을 하나씩 살펴보자.

1. List (리스트)

List는 Dart에서 배열과 유사한 개념으로, 여러 개의 값을 순차적으로 저장하는 컬렉션이다.

List의 특징

  1. 인덱스(index)를 사용하여 요소에 접근
  2. 중복된 값을 허용
  3. 가변 길이(Growable List)와 고정 길이(Fixed-Length List)가 있음

List 생성 방법


void main() {
  // 1. 기본적인 List 선언 (가변 길이)
  List<int> numbers = [1, 2, 3, 4, 5];
  print(numbers); // [1, 2, 3, 4, 5]

  // 2. 빈 리스트 선언 후 값 추가
  List<String> names = [];
  names.add("Alice");
  names.add("Bob");
  print(names); // ["Alice", "Bob"]

  // 3. 고정 길이 리스트
  List<int> fixedList = List.filled(3, 0);
  print(fixedList); // [0, 0, 0]

  // 4. 다양한 메서드 사용
  numbers.add(6);
  numbers.removeAt(0);
  print(numbers.contains(3)); // true
  print(numbers.length); // 5
}

List 주요 메서드

  1. add(value) 리스트에 값 추가
  2. remove(value) 특정 값 삭제
  3. removeAt(index) 특정 인덱스의 값 삭제
  4. length 리스트의 길이 반환
  5. contains(value) 특정 값 포함 여부 확인
  6. map() 리스트 내 모든 요소에 함수 적용
  7. where() 특정 조건을 만족하는 요소 필터링

2. Set (셋)

Set은 중복을 허용하지 않는 컬렉션이다.

Set의 특징

  1. 중복된 값을 허용하지 않음
  2. 순서가 보장되지 않음
  3. List와 달리 인덱스로 접근 불가능

Set 생성 방법

void main() {
  // 1. 기본적인 Set 선언
  Set<int> numberSet = {1, 2, 3, 4, 5};
  print(numberSet); // {1, 2, 3, 4, 5}

  // 2. 중복된 값 추가 (자동으로 제거됨)
  numberSet.add(3);
  numberSet.add(6);
  print(numberSet); // {1, 2, 3, 4, 5, 6}

  // 3. Set 메서드 활용
  numberSet.remove(2);
  print(numberSet.contains(3)); // true
  print(numberSet.length); // 5
}

Set 주요 메서드

  1. add(value) 값 추가
  2. remove(value) 특정 값 삭제
  3. contains(value) 특정 값 포함 여부 확인
  4. length Set의 크기 반환
  5. union(otherSet) 두 Set을 합친 새로운 Set 반환
  6. intersection(otherSet) 두 Set의 공통 요소 반환

3. Map (맵)

Map은 Key-Value(키-값) 쌍으로 데이터를 저장하는 컬렉션이다.

Map의 특징

  1. 고유한 Key 값을 기반으로 데이터 저장
  2. Key를 통해 Value에 접근 가능
  3. Key는 중복될 수 없지만, Value는 중복 가능

Map 생성 방법

void main() {
  // 1. 기본적인 Map 선언
  Map<String, int> ageMap = {
    "Alice": 25,
    "Bob": 30,
    "Charlie": 28
  };
  print(ageMap); // {Alice: 25, Bob: 30, Charlie: 28}

  // 2. 값 추가 및 변경
  ageMap["David"] = 22;
  ageMap["Alice"] = 26;
  print(ageMap["Alice"]); // 26

  // 3. Map 메서드 활용
  print(ageMap.keys); // (Alice, Bob, Charlie, David)
  print(ageMap.values); // (26, 30, 28, 22)
  print(ageMap.containsKey("Charlie")); // true
  ageMap.remove("Bob");
  print(ageMap); // {Alice: 26, Charlie: 28, David: 22}
}

Map 주요 메서드

  1. putIfAbsent(key, () => value) 키가 없을 경우 값 추가
  2. remove(key) 특정 키 삭제
  3. containsKey(key) 특정 키 포함 여부 확인
  4. containsValue(value) 특정 값 포함 여부 확인
  5. keys 모든 키 반환
  6. values 모든 값 반환
개념	특징
List : 순서가 있으며, 중복 가능
Set	: 순서가 없으며, 중복 불가능
Map	: Key-Value 쌍으로 저장
profile
프론트 요정임

0개의 댓글

관련 채용 정보