📌 여러 값을 하나의 변수에 저장할 수 있는 타입
List: 여러 값을 순서대로 저장
Map: 특정 키값을 기반으로 빠르게 검색
Set: 중복 데이터를 제거
List 타입
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
blackPinkList[3] = '코드팩토리'; // 3번 인덱스값 변경
}
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
blackPinkList.add('코드팩토리'); // 값 추가
}
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
final newList = blackPinkList.where(
(name) => name == '리사' || name == '지수', // '리사' 또는 '지수'만 유지
);
print(newList);
print(newList.toList()); // Iterable을 Lsit로 다시 변환할 때 toList() 사용
}
❓ Iterable: 추상 클래스로 List, Set 등의 컬렉션 타입들이 상속 받는 클래스
List와 Set 같은 컬렉션이 공통으로 사용하는 기능을 정의해둔 클래스
순회가 끝날 시 반환된 값들 기반으로 이터러블 반환
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
final newList = blackPinkList.where(
(name) => '블랙핑크 $name',
);
print(newList);
// Iterable을 Lsit로 다시 변환할 때 toList() 사용
print(newList.toList());
}
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
final allMembers = blackPinkList.reduce((value, element) => value + ', '
+ element);
);
print(allMembers);
}
void main() {
List<String> blackPinkList = ['리사', '지수', '제니', '로제'];
final allMembers = blackPinkList.fold<int>(0, (value, element) =>
value + element.length);
print(allMembers);
}
Map 타입
Map<키의 타입, 값의 타입> 맵이름 형식으로 생성
void main() {
Map<String, String> dictionary = {
'Harry Potter': '해리 포터',
'Ron Weasley': '론 위즐리',
'Hermione Granger': '헤르미온느 그레인저',
};
print(dictionary['Harry Potter']);
print(dictionary['Ron Weasley']);
}
void main() {
Map<String, String> dictionary = {
'Harry Potter': '해리 포터',
'Ron Weasley': '론 위즐리',
'Hermione Granger': '헤르미온느 그레인저',
};
print(dictionary.keys); // Harry Potter, Ron Weasley, Hermione Granger
print(dictionary.values); // 해리 포터, 론 위즐리, 헤르미온느 그레인저
}
Set 타입
Set<타입> 세트이름 형식으로 생성
void main() {
Set<String> blackPink = {'로제', '지수', '리사', '제니', '제니'};
print(blackPink);
print(blackPink.contains('로제')); // 값이 있는지확인
print(blackPink.toList()); // 리스트로 변환
List<String> blackPink2 = ['로제', '지수', '지수'];
print(Set.from(blackPink2)); // List 타입을 Set 타입으로 변경
}
enum
- enum은 한 변수의 값을 몇 가지 옵션으로 제한하는 기능
- 선택지가 제한적일 때 사용
enum Status {
approved,
pending,
rejected,
}
void main() {
Status status = Status.approved;
print(status); // Status.approved
}
String으로 대체 가능하나 enum은 기본적으로 자동 완성이 지원되고 정확히 어떤 선택지가 존재하는지 정의해둘 수 있기 때문에 유용