Flutter/Dart - Map에서 Entry(key-value) 제거

Map(HashMap)에서 Entry(key-value)를 제거하는 방법을 소개합니다.

1. remove(): key로 Entry 제거

Map.remove(key)는 Map에 key가 있을 때, key에 대한 key-value 값을 제거합니다. 아이템이 제거되면 제거된 value가 리턴됩니다.

void main() {

    Map<String, int> map = {'a': 0, 'b': 1, 'c': 2};

    map.remove('a');
    print(map);
}

Output:

{b: 1, c: 2}

2. removeWhere(): value로 Entry 제거

Map.removeWhere(function)는 Map의 key-value 값에 대해서 function을 수행했을 때 true가 리턴되는 Entry들을 모두 제거합니다.

만약 아래 처럼 value가 특정 값일 때 true를 리턴하도록 함수를 구현하면, 특정 value를 갖고 있는 Entry를 제거할 수 있습니다. (value는 중복된 값이 있을 수 있기 때문에, 1개 이상의 Entry가 삭제될 수 있습니다.)

void main() {

    Map<String, int> map = {'a': 0, 'b': 1, 'c': 2};

    map.removeWhere((key, value) => value == 1);
    print(map);
}

Output:

{a: 0, c: 2}

2.1 removeWhere()로 여러 Entry 제거

removeWhere()를 이용하여 아래와 같이 2개 이상의 Entry를 제거할 수도 있습니다.

아래 예제는 value가 2 이상인 Entry를 모두 제거합니다.

void main() {

    Map<String, int> map = {'a': 0, 'b': 1, 'c': 2, 'c': 3};

    map.removeWhere((key, value) => value >= 2);
    print(map);
}

Output:

{a: 0, b: 1}

3. clear(): 모든 Entry 제거

Map.clear()는 Map에 저장된 모든 Entry를 삭제합니다.

void main() {

    Map<String, int> map = {'a': 0, 'b': 1, 'c': 2};

    map.clear();
    print(map);
}

Output:

{}
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha