void main() {
List<String> blackPink = ['로제', '지수', '리사', '제니', '제니'];
print(blackPink); // [로제, 지수, 리사, 제니, 제니]
print(blackPink.asMap()); // {0: 로제, 1: 지수, 2: 리사, 3: 제니, 4: 제니}
print(blackPink.toSet()); // 중복 제거 : {로제, 지수, 리사, 제니}
Map blackPinkMap = blackPink.asMap();
print(blackPinkMap.values); // iterable 형태 : (로제, 지수, 리사, 제니, 제니)
print(blackPinkMap.keys); // iterable 형태 : (0, 1, 2, 3, 4)
// iterable -> List : iterable.toList()
print(blackPinkMap.values.toList()); // [로제, 지수, 리사, 제니, 제니]
print(blackPinkMap.keys.toList()); // [0, 1, 2, 3, 4]
}
List < - > Set : Set.from(list), toSet(), toList()
List<String> blackPink = ['로제', '지수', '리사', '제니', '제니'];
// 1. list.toSet()
print(blackPink.toSet()); // 중복 제거 : {로제, 지수, 리사, 제니}
// 2. Set.from(list)
Set blackPinkSet = Set.from(blackPink);
print(blackPinkSet); // {로제, 지수, 리사, 제니}
// 3. Set -> List : toList()
print(blackPinkSet.toList()); // [로제, 지수, 리사, 제니]
map() : 변환
- 새로운 이터러블 만들어내는 것. 기존 리스트와 별개임
void main() {
List<String> blackPink = ['로제', '지수', '리사', '제니'];
// 1
final newBlackPink = blackPink.map((x){ // iterable 형태로 반환됨
return '블랙핑크 $x';
});
print(blackPink);
print(newBlackPink); // iterable -> list : newBlackPink.toList()
// 2
final newBlackPink2 = blackPink.map((x) => '블랙핑크 $x');
print(newBlackPink2.toList()); // list
print(blackPink == blackPink); // true
print(blackPink == newBlackPink); // false
print(newBlackPink == newBlackPink2); // false
}
// 실행 결과
[로제, 지수, 리사, 제니]
(블랙핑크 로제, 블랙핑크 지수, 블랙핑크 리사, 블랙핑크 제니)
[블랙핑크 로제, 블랙핑크 지수, 블랙핑크 리사, 블랙핑크 제니]
map() 사용 예시 1
// [1.jpg, 3.jpg, 5.jpg, 7.jpg, 9.jpg]
String number = '13579';
final parsed = number.split('').map((x) => '$x.jpg').toList();
print(parsed); // [1.jpg, 3.jpg, 5.jpg, 7.jpg, 9.jpg]
map() 사용 예시 2 : Map - > Map
void main() {
Map<String, String> harryPotter = {
'Harry Potter': '해리포터',
'Ron Weasley': '론 위즐리',
'Hermione Granger': '헤르미온느 그레인저',
};
final result = harryPotter.map(
(key, value) => MapEntry(
'Harry Potter Character $key',
'해리포터 캐릭터 $value',
),
);
print(harryPotter);
print(result);
}
// 실행결과 (기존 harryPotter는 변경되지 않고 새로운 맵 생성됨)
{Harry Potter: 해리포터, Ron Weasley: 론 위즐리, Hermione Granger: 헤르미온느 그레인저}
{Harry Potter Character Harry Potter: 해리포터 캐릭터 해리포터,
Harry Potter Character Ron Weasley: 해리포터 캐릭터 론 위즐리,
Harry Potter Character Hermione Granger: 해리포터 캐릭터 헤르미온느 그레인저}
map() 사용 예시 3 : Map.keys - > list / Map.values - > list
final keys = harryPotter.keys.map((x) => 'HPC $x');
print(keys); // (HPC Harry Potter, HPC Ron Weasley, HPC Hermione Granger)
final values = harryPotter.values.map((x) => '해리포터 $x').toList();
print(values); // [해리포터 해리포터, 해리포터 론 위즐리, 해리포터 헤르미온느 그레인저]
map() 사용 예시 4 : Set - > Set
Set blackPinkSet = {
'로제',
'지수',
'제니',
'리사',
};
final newSet = blackPinkSet.map((x) => '블랙핑크 $x').toSet();