Flutter/Dart - 리스트 합치는 방법

여러 리스트를 하나의 리스트로 합치는 방법을 소개합니다.

1. addAll()을 이용한 방법

list1.addAll(list2)는 list1에 list2의 모든 요소를 추가합니다.

void main() {

    List list1 = [1, 2, 3];
    List list2 = [4, 5, 6];

    list1.addAll(list2);

    print(list1);
    print(list2);
}

Output:

[1, 2, 3, 4, 5, 6]
[4, 5, 6]

1.1 원본 리스트 변경 없이 합치기

위 예제는 원본 리스트가 변경됩니다.

만약 원본 리스트를 변경하지 않고 새로운 리스트에 두 리스트의 요소들을 합치고 싶다면, 아래와 같이 List.from()을 이용할 수 있습니다.

List.from(list1)는 list1의 요소를 초기 값으로 새로운 리스트를 만듭니다. 그 뒤에 addAll()로 list2의 요소를 추가합니다.

void main() {

    List list1 = [1, 2, 3];
    List list2 = [4, 5, 6];

    List result = List.from(list1)..addAll(list2);

    print(list1);
    print(list2);
    print(result);
}

Output:

[1, 2, 3]
[4, 5, 6]
[1, 2, 3, 4, 5, 6]

2. + 연산자를 이용한 방법

+ 연산자를 이용하여 아래와 같이 간단히 리스트를 합칠 수 있습니다.

void main() {

    List list1 = [1, 2, 3];
    List list2 = [4, 5, 6];
    List list3 = [7, 8, 9];

    List result = list1 + list2 + list3;
    print(result);
}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

3. Spread operator(...)를 이용한 방법

스프레드 연산자는 리스트가 갖고 있는 요소를 꺼내는 역할을 합니다.

아래와 같이 리스트 안에 스프레드 연산자로 리스트를 추가하면, 요소들이 새로운 리스트에 저장이 됩니다.

void main() {

    List list1 = [1, 2, 3];
    List list2 = [4, 5, 6];
    List list3 = [7, 8, 9];

    List result = [...list1, ...list2, ...list3];
    print(result);
}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

4. expand()를 이용한 방법

expand()를 이용하여 리스트 안의 리스트를 평탄화하여 하나의 리스트로 만들 수 있습니다.

void main() {

    List list1 = [1, 2, 3];
    List list2 = [4, 5, 6];
    List list3 = [7, 8, 9];

    List result = [list1, list2, list3].expand((x) => x).toList();
    print(result);
}

Output:

[1, 2, 3, 4, 5, 6, 7, 8, 9]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha