티스토리 뷰
728x90
Dart에서 하나의 리스트를 두개로 분리하는 방법에 대해서 알아보겠습니다.
Index 범위로 리스트 나누기
list.sublist(start, end)는 list에서 start index를 포함하고 end를 포함하지 않는 범위 요소들의 리스트를 리턴합니다.
아래 예제에서 sublist(0, 4)는 Index 0에서 Index 3까지의 요소들이 포함된 리스트가 리턴됩니다.
void main() {
List<int> list = [1, 2, 3, 4, 5, 6, 7, 8];
List<int> subList1 = list.sublist(0, 4);
List<int> subList2 = list.sublist(4, list.length);
print(subList1);
print(subList2);
}
// [1, 2, 3, 4]
// [5, 6, 7, 8]
list.sublist(start)는 start 인덱스부터 리스트 마지막까지의 요소들이 포함된 리스트가 리턴됩니다.
void main() {
List<int> list = [1, 2, 3, 4, 5, 6, 7, 8];
List<int> subList1 = list.sublist(4);
print(subList1);
}
// [5, 6, 7, 8]
특정 조건으로 리스트 나누기
인덱스를 기준으로 리스트를 나누지 않고, 요소 값에 따라서 특정 조건으로 리스트를 분리할 수 있습니다.
예를 들어, 아래 예제는 리스트의 요소들을 짝수와 홀수로 나눠서 각각의 리스트에 저장하여 분리합니다.
for문을 사용하여 직접 구현하였습니다.
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
List<int> evenNumbers = [];
List<int> oddNumbers = [];
for (int number in numbers) {
if (number % 2 == 0) {
evenNumbers.add(number);
} else {
oddNumbers.add(number);
}
}
print("Even numbers: $evenNumbers");
print("Odd numbers: $oddNumbers");
}
// Even numbers: [2, 4]
// Odd numbers: [1, 3, 5]
for문 대신에, List.where()를 사용하여 동일하게 리스트를 분리할 수 있습니다.
where()는 인자로 함수가 전달되며, 모든 요소에 대해서 함수를 호출하여 true를 리턴하는 요소들이 리스트로 리턴됩니다.
아래 예제를 보면 where()안의 함수에 짝수 또는 홀수를 판단하는 코드를 추가하였습니다.
void main() {
List<int> numbers = [1, 2, 3, 4, 5];
List<int> evenNumbers = numbers.where((number) => number % 2 == 0).toList();
List<int> oddNumbers = numbers.where((number) => number % 2 == 1).toList();
print("Even numbers: $evenNumbers");
print("Odd numbers: $oddNumbers");
}
// Even numbers: [2, 4]
// Odd numbers: [1, 3, 5]
728x90
'개발 > Dart' 카테고리의 다른 글
Dart에서 sleep()으로 몇초 지연 (1) | 2024.09.01 |
---|---|
Dart - 파일/디렉토리 삭제 (0) | 2023.06.11 |
Dart - 예외처리 방법(Exception handling) (0) | 2023.04.26 |
Dart - 리스트 정렬 방법 (0) | 2023.04.17 |
Dart - Map 생성, 초기화 방법 (0) | 2023.04.16 |
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
TAG
- 와보땅
- Unreal Engine
- java
- 안드로이드
- 오블완
- adb
- 파란버섯
- 주황버섯
- 12e 트램
- Skia
- 15e 트램
- 메이플랜드
- 파이썬
- javascript
- Python
- aosp 빌드
- 모루정원
- 와일드보어의 땅
- 포르투갈
- Flutter
- 나무던전
- 마비노기 모바일
- 리스보아 카드
- android
- 포르투
- DART
- 다크스텀프
- 티스토리챌린지
- 원숭이의숲
- 리스본
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함