티스토리 뷰

개발/Dart

Dart - 리스트 정렬 방법

JSMun 2023. 4. 17. 11:45
728x90

Dart에서 리스트를 오름차순, 내림차순으로 정렬하는 방법을 예제와 함께 알아보겠습니다.

 

1. sort()로 리스트 정렬

List.sort()는 리스트를 오름차순으로 정렬합니다.

 

만약 내림차순으로 정렬하려면 직접 정렬하는 코드를 구현해야 하며, sort() 함수의 인자로 전달해야 합니다.

 

아래와 같이 정렬 함수를 내림차순으로 정렬되도록 구현하시면 됩니다.

void main() {
  List<int> numbers = [4, 2, 6, 8, 1];
  numbers.sort(); // 오름차순 정렬
  print(numbers); // [1, 2, 4, 6, 8]
  
  numbers.sort((a, b) => b.compareTo(a)); // 내림차순 정렬
  print(numbers); // [8, 6, 4, 2, 1]
}

 

2. 객체 리스트 정렬

String, Int가 아닌 Custom 클래스 객체를 갖고 있는 리스트를 정렬할 수도 있습니다.

 

대신, 정렬하는 코드를 직접구현하고 sort()의 인자로 전달해야 합니다.

아래 예제는 이름을 오름차순으로 정렬하고, 나이를 내림차순으로 정렬하는 예제입니다.

sort()의 함수를 보시면 어떻게 비교하는 함수를 구현하는지 알 수 있습니다.

class Person {
  String name;
  int age;
  
  Person(this.name, this.age);
  
  @override
  String toString() => '$name ($age)';
}

void main() {
  List<Person> people = [
    Person('Alice', 25),
    Person('Bob', 30),
    Person('Charlie', 20),
  ];
  
  people.sort((a, b) => a.name.compareTo(b.name)); // 이름 오름차순 정렬
  print(people); // [Alice (25), Bob (30), Charlie (20)]
  
  people.sort((a, b) => b.age.compareTo(a.age)); // 나이 내림차순 정렬
  print(people); // [Bob (30), Alice (25), Charlie (20)]
}
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2025/06   »
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
글 보관함