Flutter/Dart - 리스트 자르기, 분리하기

하나의 리스트를 두개 이상의 리스트로 분리하거나, 특정 Index 범위의 리스트로 자르는 방법을 소개합니다.

1. 두개의 리스트로 분리

List.sublist(start, end)는 start Index에서 end Index 범위의 리스트를 리턴합니다. start Index는 포함하며, end Index는 포함되지 않습니다.

아래 예제는 sublist()를 이용하여 1개의 리스트를 2개의 리스트로 분리합니다.

  • list.sublist(0, 3) : Index 0에서 Index 2를 포함하는 리스트 리턴
  • list.sublist(3, list.length) : Index 3에서 Index 4를 포함하는 리스트 리턴 (length: 5)
void main() {

    List<int> list = [1, 2, 3, 4, 5];

    List<int> subList1 = list.sublist(0, 3);
    List<int> subList2 = list.sublist(3, list.length);

    print(subList1);
    print(subList2);
}

Output:

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

2. 특정 Index에서 마지막까지 자르기

List.sublist(start)는 start Index부터 리스트 마지막까지 잘라서 리스트로 리턴합니다.

예를 들어, sublist(3)은 Index 3에서 마지막 요소까지 포함된 리스트를 리턴합니다.

void main() {

    List<int> list = [1, 2, 3, 4, 5];

    List<int> subList1 = list.sublist(3);
    print(subList1);
}

Output:

[4, 5]

3. 특정 조건으로 리스트 분리

List.where(function)은 리스트의 모든 요소에 대해서 function의 조건을 만족하는 요소들을 Iterable로 리턴합니다.

  • 어떤 요소에 대해서 function이 true를 리턴하면 Iterable에 포함됨
  • toList()로 Iterable을 List로 변환할 수 있습니다.

아래 예제는 리스트의 요소들 중에 짝수는 subList1로 분리하고, 홀수는 sublist2에 분리하는 예제입니다.

void main() {

    List<int> list = [1, 2, 3, 4, 5];

    List<int> subList1 = list.where((e) => e % 2 == 0).toList();
    List<int> subList2 = list.where((e) => e % 2 != 0).toList();

    print(subList1);
    print(subList2);
}

Output:

[2, 4]
[1, 3, 5]
Loading script...

Related Posts

codechachaCopyright ©2019 codechacha