void main() {
var numbers = [1, 2, 3, 4,];
numbers.first; // 첫번째 요소를 가져옴
numbers.last; // 마지막 요소를 가져옴
}
generate() 사용List<int> myList = List.generate(5, (index) => index * 2);
void main() {
var number = {
1,
2,
3,
4,
};
Set<int> numbers = {
1,
2,
3,
4,
};
// list 와 set의 차이 set에 속한 모든 아이템들은 유니크하다
numbers.add(1);
numbers.add(1);
numbers.add(1);
print(numbers);
List<int> numberss = [
1,
2,
3,
4,
];
numberss.add(1);
numberss.add(1);
numberss.add(1);
print(numberss);
}
// 요소가 하나만 있어야 한다면 set을 사용
// unique할 필요가 없다면 list사용
void main() {
// Set
final Set<String> names = {
'Code Factory',
'Flutter',
'Black Pink',
};
print(names);
names.add('Jenny'); // 추가
print(names);
names.remove('Jenny'); // 제거
print(names);
print(names.contains('Flutter')); // 값이 존재하는지 안하는지 알 수 있다
}
void main() {
Set blackPinkSet = {
'로제',
'지수',
'제니',
'리사',
};
final newSet = blackPinkSet.map((x) => '블랙핑크 $x').toSet();
print(newSet);
}
키(key)와 값(value)의 쌍으로 저장 (키(key)는 중복x)
일반적으로 맵은 key와 value를 연결하는 객체입니다. 키와 값 모두 모든 유형의 객체가 될 수 있다.
각 키는 한 번만 발생하지만 동일한 값을 여러 번 사용할 수 있다.
var을 사용하면 컴파일러가 key와 value를 유추해서 보여준다.
Key는 String, Value는 Object 형태
Dart에서는 모든 자료형이 Object로부터 생긴다. ->
object는 기본적으로 어떤 자료형이든지 될 수 있고 명시적으로 정의할 수 있다.
코드
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);
final keys =
harryPotter.keys.map((x) => 'Harry Potter Character $x').toList();
final values = harryPotter.keys.map((x) => '해리포터 $x').toList();
print(keys);
print(values);
}