컬랙션은 서로의 타입으로 자유롭게 형변환이 가능하다
리스트의 끝
에 데이터를 추가한다순회
하면서 특정 조건에 맞는 값만 필터링
한다이터러블(iterable)타입이 반환
된다순회
하면서 요소 값의 변경이 가능
하다 변경된 값으로 구성된 iterable이 반환
된다순회
하면서 값을 누적하여 누적한 값
을 List 멤버의 타입과 동일한 타입으로 반환
한다
리스트를 구성하는 값들의 타입
과반환되는 리스트를 구성할 값들의 타입
이 완전히 같아야 한다
fold는 어떠한 타입이든 반환할 수 있다.
시작할 값
을 지정하고, 두 번째 매개변수에 함수
를 지정한다데이터의 중복이 불가능
. 유일한 값만 저장
contain()
을 이용한다toList()
을 사용한다from()
을 사용한다열거형 이름.values
는 열거형에 정의된 모든 값들을 리스트로 반환해준다 void main(){
// Collection(컬랙션)
// 컬렉션은 서로의 타입으로 자유롭게 형변환이 가능하다
// List
// List.add(value)
List<String> foodName = ['피자', '당근', '토끼', '네이버', '쿠팡'];
foodName.add('토스');
print(foodName); // [피자, 당근, 토끼, 네이버, 쿠팡, 토스]
// List.where((element) => 조건식 )
List<String> foodList = ['피자', '당근', '토끼'];
// final : Runtime시에 값이 결정됨
final newList1 = foodList.where((name) => name == "피자" || name == "콜라");
// iterable로 반환
print(newList1); // 출력결과 : (피자)
// toList : iterable을 List로 반환
print(newList1.toList()); // 출력결과 : [피자]
// List.map( (element) => 변형식 )
List<String> furnitureList = ['소파', '텔레비전', '침대'];
final furniture = furnitureList.map((element) => "우리집에는 ${element}가 있어요~!");
print(furnitureList); // 출력 결과 : [소파, 텔레비전, 침대] => 원래의 리스트에는 영향을 미치지 않음
print(furniture); // 출력 결과 : (우리집에는 소파가 있어요~!, 우리집에는 텔레비전가 있어요~!, 우리집에는 침대가 있어요~!) => iterable 반환
print(furniture.toList()); // 출력 결과 : [우리집에는 소파가 있어요~!, 우리집에는 텔레비전가 있어요~!, 우리집에는 침대가 있어요~!] => List로 변환
// List.reduce( (value, element) => 수행식 )
List<String> foodList2 = ['pizza', 'hamburger', 'chicked', 'coke'];
final allList1 = foodList2.reduce((value, element) => "$value, $element");
print(allList1); // <String> : pizza, hamburger, chicked, coke
// List.fold( startElement, (value, elemenet) => 수행식 )
List<String> foodList3 = ['피자', '햄버거', '치킨', '콜라'];
final allList2 = foodList3.fold(1, (value, element) => value + element.length);
print(allList2);
// Map
Map<String, String> firstName = {
"Kim" : "김씨",
"Park" : "박씨",
"Kwon" : "권씨",
};
print(firstName['김씨']); // null => Key값으로 조회를 해야함
print(firstName['Park']); // 박씨
// 전체 키(key)를 반환
print(firstName.keys); // (Kim, Park, Kwon)
// 전체 값(value)을 반환
print(firstName.values); // (김씨, 박씨, 권씨)
// Set
Set<String> colors = {
'red', 'blue', 'orange', 'black', 'yellow'
};
print(colors); // {red, blue, orange, black, yellow}
print(colors.contains('red')); // <Boolean> true
print(colors.toList()); // [red, blue, orange, black, yellow]
List<String> months = ['Jan', 'Apr', 'Jul', 'Sep', 'Dec'];
// List -> Set으로 반환
print(Set.from(months)); // {Jan, Apr, Jul, Sep, Dec}
// Enum
Answers answer = Answers.Yes;
print(answer); // Answers.Yes
print(answer.name); // No
print(Answers.values); // [Answers.Yes, Answers.No, Answers.None]
}
enum Answers {
Yes,
No,
None
}