조용한 담장

Dart : Collections 본문

Dart

Dart : Collections

iosroid 2019. 11. 19. 19:02

Dart 의 collections 자료형 클래스인 List, Set, Map 을 살펴보자.

List

List<E> class

 

List 는 두가지 타입이 있다.

  • 길이 고정된 리스트 : 리스트의 길이를 변경하는 동작에 에러를 발생시킨다. new List(n), List(n)

  • 길이 증가 가능한 리스트. List(), []

Constructors

List([int length ])

: length 길이의 null 로 채워진 리스트를 생성한다.

List.filled(int length, E fill, { bool growable: false })

: 각 element 가 fill 값을 length 길이의 리스트를 생성한다.

List.from(Iterable elements, { bool growable: true })

: elements 를 가진 리스트를 생성한다. subtype 으로 down-cast 가 가능하다.

List.generate(int length, E generator(int index), { bool growable: true })

: generator 가 생성하는 값을 가진 length 길이의 리스트를 생성한다.

List.of(Iterable<E> elements, { bool growable: true })

: elements 로 부터 리스트를 생성한다. 내부적으로 List.from 을 쓰지만 down-cast 는 불가능하다.

List.unmodifiable(Iterable elements)

: 값을 수정할 수 없는 리스트를 생성한다.

 

DartPad 는 javascript 로 변환되어 실행해서 소수점에 대한 값이 좀 다르게 나온다.

Operators

+, ==, [], []=

 

Static methods

castFrom<S, T>(List<S> source)

copyRange<T>(List<T> target, [ int at, List<T> source, [ int start int end ])

writeIterable<T>(List<T> target, int at, Iterable<T> source)

 

Set

Set<E> class

 

element object 가 하나만 존재할 수 있고 동시에 존재할 수 없다.

 

Set 의 기본 구현은 LinkedHashSet 이다.

== operator 에 의해 유일한 element 인지 확인된다.

element 을 접근할 때 순서에 따라 아래처럼 구분된다.

  • A HashSet is unordered, which means that its iteration order is unspecified,

  • LinkedHashSet iterates in the insertion order of its elements, and

  • a sorted set like SplayTreeSet iterates the elements in sorted order.

Constructors

Set()

: 비어있는 LinkedHashSet 를 생성한다.

Set.from(Iterable elements)

: elements 를 가진 LinkedHashSet 를 생성한다. subtype 으로 down-cast 가 가능하다.

Set.identity()

: 비어있는 identity LinkedHashSet 를 생성한다.

Set.of(Iterable<E> elements)

: elements 로 부터 LinkedHashSet 를 생성한다.

 

Operators

==

 

Static methods

castFrom<S, T>(Set<S> source, { Set<R> newSet() })

 

Map

Map<K, V> class

 

element 을 접근할 때 순서에 따라 아래처럼 구분된다.

  • The plain HashMap is unordered (no order is guaranteed),

  • the LinkedHashMap iterates in key insertion order,

  • and a sorted map like SplayTreeMap iterates the keys in sorted order.

Constructors

Map()

: 비어있는 LinkedHashMap 을 만든다.

Map.from(Map other)

: 다른 Map 으로 부터 LinkedHashMap 을 만든다.

Map.fromEntries(Iterable<MapEntry<K, V>> entries)

: Map 을 만들고 모든 MapEntry 를 추가한다.

Map.fromIterable(Iterable iterable, { K key(dynamic element), V value(dynamic element) })

: iterable 로 부터 LinkedHashMap 을 만든다.

Map.fromIterables(Iterable<K> keys, Iterable<V> values)

: keysvalues 로 LinkedHashMap 을 만든다.

Map.identity()

: identity map (기본 LinkedHashMap) 을 만든다.

Map.of(Map<K, V> other)

: other 가 가진 key, value 값들로 LinkedHashMap 을 만든다.

Map.unmodifiable(Map other)

: 값을 수정할 수 없는 Map 을 other 로 부터 만든다.

 

Operators

[], []=, ==

 

Static methods

castFrom<K, V, K2, V2>(Map<K, V> source)

 

Reference

Dart API reference documentation

 

'Dart' 카테고리의 다른 글

Dart : Generators  (0) 2019.11.22
Dart : Generics  (0) 2019.11.22
Dart : print  (0) 2019.11.04
Dart : Asynchronous programming  (0) 2019.10.24
Dart : Class  (0) 2019.10.02
Comments