본문 바로가기
Develop

Dart 문법 - List, Map, Set (기본)

by B-e 2022. 6. 16.
반응형

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 등 여러가지가 있는데 그 중 자주쓰는 몇가지를 소개한다.

 

 

 

List.length - 해당 List의 길이(value 갯수)
ex>
final List<int> number = [1,2,3,4,5];
final no = number.length;
print(no) // 5​
List.add - 해당 List에 특정 값을 추가한다. *이 때 추가되는 값은 List의 type과 동일해야한다.
ex>
final List<int>numbers = [1, 2, 3];
numbers.add(4);
print(numbers); // [1, 2, 3, 4]​
List.remove - 해당 List에서 특정 값을 제거한다.
ex>
final parts = <String>['head', 'shoulders', 'knees', 'toes'];
final retVal = parts.remove('head'); // true
print(parts); // [shoulders, knees, toes]

 

List.indexOf - 해당 value의 index를 받아온다. 2번째 인수에 int값을 입력하면 중복 값 중 해당하는 순서의 index를 받아온다.
ex>
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}

 

반응형

댓글