본문 바로가기
Dev/Flutter

[Flutter] 학습(4) - 컬렉션 (Collection)-1

by steady.dev 2023. 3. 4.

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

 

Flutter에서 사용할 수 있는 컬렉션 종류는 다음과 같습니다.

  1. List: 순서가 있는 값을 저장하는 컬렉션으로, 동적으로 크기가 조정
  2. Set: 중복된 값을 허용하지 않는 컬렉션으로, 순서가 없습니다.
  3. Map: 키와 값이 쌍으로 이루어진 데이터를 저장하는 컬렉션으로, 각 키는 유일해야 합니다.
  4. Queue: 선입선출(FIFO) 구조의 데이터를 저장하는 컬렉션입니다.
  5. LinkedList: 노드 간에 연결된 구조를 사용하여 데이터를 저장하는 컬렉션입니다.

 

1. List

순서가 있는 값을 저장하는 컬렉션으로, 동적으로 크기가 조정됩니다. 다른 언어에서 배열(Array)와 유사한 역할을 합니다. 예를 들어, 다음과 같은 코드를 사용하여 정수형 데이터를 List에 추가할 수 있습니다.

 

List<int> numbers = [1, 2, 3];
numbers.add(4);

 

 

2. Set

중복된 값을 허용하지 않는 컬렉션으로, 순서가 없습니다. List와 달리 인덱스로 요소에 접근할 수 없지만, contains 메서드를 사용하여 특정 값이 Set 안에 있는지 확인할 수 있습니다.

 

Set<String> fruits = {'apple', 'banana', 'orange'};
bool hasApple = fruits.contains('apple');

 

 

3. Map

키와 값이 쌍으로 이루어진 데이터를 저장하는 컬렉션으로, 각 키는 유일해야 합니다. 예를 들어, 다음과 같은 코드를 사용하여 학생의 이름과 성적을 Map에 추가할 수 있습니다.

 

Map<String, double> grades = {'Alice': 3.5, 'Bob': 4.0, 'Charlie': 3.2};
grades['David'] = 3.8;

 

4. Queue

선입선출(FIFO) 구조의 데이터를 저장하는 컬렉션입니다. 다른 컬렉션과 마찬가지로, add 및 remove 메서드를 사용하여 데이터를 추가하거나 삭제할 수 있습니다.

 

Queue<String> messages = Queue<String>();
messages.add('Hello');
messages.add('World');
String firstMessage = messages.removeFirst();

 

 

5.LinkedList

노드 간에 연결된 구조를 사용하여 데이터를 저장하는 컬렉션입니다. 다른 컬렉션과 마찬가지로, add 및 remove 메서드를 사용하여 데이터를 추가하거나 삭제할 수 있습니다.

 

LinkedList<int> linkedList = LinkedList<int>();
linkedList.add(1);
linkedList.add(2);
int firstItem = linkedList.first;

 

 

댓글