Dart/기본

Dart 문법 기본 - 컬렉션

codeJunH 2024. 8. 20. 17:06

컬렉션 개요

컬렉션(Collection)은 데이터 집합을 관리하기 위한 자료구조이다.

Dart에서는 기본적으로 List, Set, Map 세 가지 컬렉션 타입을 제공한다.

이들은 여러 값을 하나의 변수에 저장할 수 있게 해주며, 각각 고유한 특성을 가지고 있다.

  • List: 순서가 있는 데이터 집합
  • Set: 중복 없는 유일한 값들의 집합
  • Map: 키-값 쌍으로 이루어진 데이터 집합

컬렉션의 큰 장점 중 하나는 서로 간의 형변환이 자유롭다는 것이다.

이를 통해 각 타입의 특징을 프로그래밍에 효과적으로 활용할 수 있다.

 

 

List 타입

List는 여러 값을 순서대로 저장하는 컬렉션 타입이다.

인덱스를 통해 각 원소에 접근할 수 있으며, 다양한 유용한 메소드를 제공한다.

 

List 생성 및 기본 사용

실행 결과:

Fruits: [Apple, Banana, Orange]
First fruit: Apple
List length: 3
Updated fruits: [Apple, Banana, Orange, Mango]
Fruits after insertion: [Apple, Grape, Banana, Orange, Mango]
Fruits after removal: [Apple, Grape, Orange, Mango]

 

List의 유용한 메소드들

List 타입은 다양한 유용한 메소드를 제공한다. 주요 메소드들을 살펴보자.

 

where() 메소드

where() 메소드는 조건에 맞는 요소들만 필터링한다.

실행 결과:

Even numbers: (2, 4, 6, 8, 10)

 

map() 메소드

map() 메소드는 리스트의 각 요소를 변환한다.

실행 결과:

Squared numbers: (1, 4, 9, 16, 25)

 

reduce() 메소드

reduce() 메소드는 리스트의 요소들을 누적해서 하나의 값으로 만든다.

실행 결과:

Sum of numbers: 15

 

fold() 메소드

fold() 메소드는 reduce()와 유사하지만, 초기값을 설정할 수 있고 반환 타입을 자유롭게 지정할 수 있다.

실행 결과:

Total letter count: 13

 

 

Map 타입

Map은 키-값 쌍으로 이루어진 컬렉션 타입이다. 키를 통해 빠르게 값을 검색할 수 있다.

실행 결과:

Ages: {John: 30, Alice: 25, Bob: 35}
John's age: 30
Updated ages: {John: 30, Alice: 25, Bob: 35, Charlie: 40}
Keys: (John, Alice, Bob, Charlie)
Values: (30, 25, 35, 40)
Does Tom exist? false

 

 

Set 타입

Set은 중복 없는 유일한 값들의 집합이다. 값의 존재 여부를 빠르게 확인할 수 있다.

실행 결과:

Unique names: {John, Alice, Bob}
Updated unique names: {John, Alice, Bob, Charlie}
Is Alice in the set? true
Intersection: {Alice}

 

 

컬렉션 타입 간의 변환

Dart에서는 컬렉션 타입 간의 변환이 매우 쉽다.

이를 통해 각 타입의 장점을 상황에 맞게 활용할 수 있다.

실행 결과:

Number set: {1, 2, 3, 4, 5}
Unique number list: [1, 2, 3, 4, 5]
Names: [John, Alice, Bob]
Scores: [90, 85, 95]