728x90
※ 시작 전 참고사항 : 다트패드로 테스트 진행
컬렉션
컬렉션(Collection)은 다른 언어와 마찬가지로 다수의 데이터를 처리하는 자료구조로 대표적으로 3가지의 컬렉션 객체가 있다.
- List : 데이터의 순서가 있고 중복을 허용한다.
- Map : 키(Key)와 값(Value)로 구성된 클래스로서 키는 중복을 허용하지 않고 값은 중복을 허용한다.
- Set : 데이터의 순서가 없고 중복을 허용하지 않는다.
List
void main() {
List<String> names = ['에이', '비', '케이', '지'];
print(names); // [에이, 비, 케이, 지]
print(names[1]); // 비
print(names.length); // list 개수는 4
names.add('코코'); // names 리스트에 '코코' 추가
names.remove('지'); // names 리스트에 '지' 삭제
print(names); // [에이, 비, 케이, 코코]
print(names.indexOf('코코')); // 3
names.clear(); // names 전체 삭제
print(names); // []
}
- List<String> : List 객체의 String 제네릭 타입을 선언. (String만 저장할 수 있는 List 객체를 선언)
- names[1] : 리스트의 1번 index의 객체를 조회한다.
- names.length : 리스트의 크기(길이)를 조회한다.
- names.add('코코') : '코코'를 리스트에 추가한다.
- names.remove('지') : '지'를 리스트에서 삭제한다.
- names.indexOf('코코') : 리스트 안에서 '코코'가 저장되어 있는 인덱스 값을 조회한다.
- names.clear() : 리스트 전체 삭제
대표적인 함수들에 대해서 테스트를 진행해 봤다. 더 많은 함수들을 제공해 주는데 나머지는 천천히 알아가도록 하자.
Map
void main() {
Map<String, String> nameMap = {'toto': '토토', 'kiki': '키키'};
print(nameMap); // {toto: 토토, kiki: 키키}
nameMap.addAll({'juju' : '주주'}); // map element 추가 방식 1
nameMap['mimi'] = '미미'; // map element 추가 방식 2
print(nameMap); // {toto: 토토, kiki: 키키, juju: 주주, mimi: 미미}
print(nameMap['kiki']); // kiki key의 value인 키키를 가져온다.
nameMap['kiki'] = '키키2'; // kiki key의 value 값 변경
print(nameMap); // {toto: 토토, kiki: 키키2, juju: 주주, mimi: 미미}
nameMap.remove('kiki'); // kiki 삭제
print(nameMap); // {toto: 토토, juju: 주주, mimi: 미미}
print(nameMap.keys); // (toto, juju, mimi)
print(nameMap.values); // (토토, 주주, 미미)
nameMap.clear(); // Map 전체 삭제
print(nameMap); // {}
}
- Map<String, String> nameMap : Map의 Key Type, Value Type을 정의
- nameMap.addAll({'juju' : '주주'}) : Map 객체 전체 추가할 수 있는 함수로 N개의 element 추가가 가능하다.
- nameMap['mimi'] = '미미' : Map에 'mimi' key, '미미' value를 추가
- nameMap['kiki'] = '키키2' : 'kiki' value를 '키키2'로 변경
- nameMap.remove('kiki') : 'kiki' key를 가진 element 삭제
- nameMap.keys : Map 키 정보를 리스트로 가져온다.
- nameMap.values : Map 값 정보를 리스트로 가져온다.
- nameMap.clear() : Map element 전체 삭제
대표적인 함수들에 대해서 테스트를 진행해 봤다. 더 많은 함수들을 제공해 주는데 나머지는 천천히 알아가도록 하자.
Set
void main() {
Set<String> names = {'코코', '주주', '키키'};
print(names); // {코코, 주주, 키키}
names.add('디디'); // 디디 추가
print(names); // {코코, 주주, 키키, 디디}
names.remove('디디'); // 디디 삭제
print(names); // {코코, 주주, 키키}
names.add('코코'); // 코코 추가 시도, 코코 중복으로 추가 실패
print(names); // {코코, 주주, 키키}
print(names.contains('주주')); // true
names.clear(); // 전체 삭제
print(names); // {}
}
- names.add('디디') : 디디 추가
- names.remove('디디') : 디디 삭제
- names.add('코코') : 코코 추가 시도하지만 names에는 이미 코코 값이 있기 때문에 중복이므로 추가 실패
- names.contains('주주') : '주주' 값이 있으면 true, 없으면 false
- names.clear() : 전체 삭제
리스트 컬렉션과 순서와 중복 차이가 있을 뿐 기본 함수들은 상당히 유사하다.
대표적인 함수들에 대해서 테스트를 진행해 봤다. 더 많은 함수들을 제공해 주는데 나머지는 천천히 알아가도록 하자.
300x250
'Dart' 카테고리의 다른 글
[Dart] 언어 기본기 - 함수편 (0) | 2022.12.08 |
---|---|
[Dart] 언어 기본기 - Enum편 (0) | 2022.12.07 |
[Dart] 언어 기본기 - 조건과 반복편 (0) | 2022.12.06 |
[Dart] 언어 기본기 - 오퍼레이터편 (0) | 2022.12.04 |
[Dart] 언어 기본기 - 변수편 (0) | 2022.12.03 |
댓글