List란 '배열(array)'이라고 생각하면 된다.
예를들어 List<int> numbers = [1, 2, 3, 4, 5]; // numbers 5개의 숫자가 들어있는 List변수가된다.
type을 뒤쪽에 입력해서 선언하는 방법도 있다.
ex> final numbers = <int>[1,2,3,4,5];
<>사이에는 데이터타입(String ,int, ....)가 들어가며 사용자정의타입(class)를 사용할수도있다.
배열 내의 값(value)을 불러오기 위해서는 해당 value의 key값을 불러야하는데, List에서는 0부터 시작되는 Int값을 가진다.
즉, 위의 numbers변수에서 numbers[0]의 값은 1, numbers[4]의 값은 5가 된다.
List에 내장된 기능들은 add, addAll 등 여러가지가 있는데 그 중 자주쓰는 몇가지를 소개한다.

ex>
final List<int> number = [1,2,3,4,5];
final no = number.length;
print(no) // 5
final List<int>numbers = [1, 2, 3];
numbers.add(4);
print(numbers); // [1, 2, 3, 4]
final parts = <String>['head', 'shoulders', 'knees', 'toes'];
final retVal = parts.remove('head'); // true
print(parts); // [shoulders, knees, toes]
final notes = <String>['do', 're', 'mi', 're'];
print(notes.indexOf('re')); // 1
final indexWithStart = notes.indexOf('re', 2); // 3
Map: key-value가 한 쌍으로 여러 쌍이 배열으로 이루어짐
ex>
Map<String, dynamic> map = {"a": 1, "abc": "aaa",};
기본형은 위와같이 선언되며 좌측에는 key값, 우측에는 value값이 된다.
쉽게 생각하면 List의 int(0,1,2,...)key값을 임의로 지정한것으로 볼 수 있다.
즉, key값을 호출해서 value를 받아올 수 있다.
Map.addAll - 여러 값을 한번에 추가한다.
ex>
final planets = <int, String>{1: 'Mercury', 2: 'Earth'};
planets.addAll({5: 'Jupiter', 6: 'Saturn'});
print(planets); // {1: Mercury, 2: Earth, 5: Jupiter, 6: Saturn}
Map.update - 기존 값의 value값을 변경한다.
ex>
final planetsFromSun = <int, String>{1: 'Mercury', 2: 'Mars',
3: 'Earth'};
planetsFromSun.update(2, (value) => 'Venus');
print(planetsFromSun); // {1: Mercury, 2: Venus, 3: Earth}
Map.forEach - 내부의 값들을 순환하며 호출한다.(for문과 비슷하지만 map.length수만큼 순회하며, 순서대로 값들을 호출한다.)
ex>
final planetsByMass = <num, String>{0.81: 'Venus', 1: 'Earth',
0.11: 'Mars', 17.15: 'Neptune'};
planetsByMass.forEach((key, value) {
print('$key: $value');
// 0.81: Venus
// 1: Earth
// 0.11: Mars
// 17.15: Neptune
});
Set: List와 동일하게 배열으로 이루어지며, 중복값을 허용하지 않는다.
List에서 중복값을 제거할 때 자주 사용한다.
ex>
final exList = <int>[1,3,5,3,7,5,9];
final toSet = exList.toSet;
print(toSet) //{1,3,5,7,9}
위의 예시에서 보다시피 Set은 List와 다르게 중괄호( {, } )로 이루어진다.
Set.add - 값을 추가한다. 단, 중복값은 제외한다.
ex>
final number = <int>{1,2,3,4,5};
number.add(3); //3은 이미 존재하기때문에 추가되지 않음.
print(number); // {1,2,3,4,5}
number.add(9); //9는 존재하지 않는 값이기 때문에 추가됨.
print(number); // {1,2,3,4,5,9}
'Develop' 카테고리의 다른 글
flutter) Firebase 연동하기 <Mac> (0) | 2022.07.08 |
---|---|
Flutter - List.map (0) | 2022.06.29 |
Flutter) Dart문법 기본 - 연산자(Operator) (0) | 2022.06.01 |
Flutter) Dart언어 기본 - 변수(variable) / Dart variable / (0) | 2022.05.31 |
Flutter) 자바 버전 오류(?) 자바 다운그레이드 (0) | 2022.04.20 |
댓글