다트 정렬 개체 목록 내림차순
12276 단어 todayilearnedflutterdartprogramming
오름차순과 유사하지만 세 가지 방법으로 이를 수행할 수 있습니다.
Comparable
추상 클래스, 재정의compareTo()
메서드 및 사용reversed
. Comparable
추상 클래스 확장, compareTo()
메서드 재정의 및 fast_immutable_collections 라이브러리 사용. 전체 게시물: Dart/Flutter Sort List of objects
Dart/Flutter 정렬 객체 목록 사용자 정의 비교 기능을 사용하여 내림차순
항목의 위치를 바꾸는 사용자 정의 비교 함수를 목록의
sort()
메서드에 전달합니다.class Customer {
String name;
int age;
Customer(this.name, this.age);
@override
String toString() {
return '{ ${this.name}, ${this.age} }';
}
}
main() {
List<Customer> customers = [];
customers.add(Customer('Jack', 23));
customers.add(Customer('Adam', 27));
customers.add(Customer('Katherin', 25));
customers.sort((a, b) => b.age.compareTo(a.age));
print('Sort by Age: ' + customers.toString());
customers.sort((a, b) => b.name.compareTo(a.name));
print('Sort by Name: ' + customers.toString());
}
산출:
Sort by Age: [{ Adam, 27 }, { Katherin, 25 }, { Jack, 23 }]
Sort by Name: [{ Katherin, 25 }, { Jack, 23 }, { Adam, 27 }]
Dart/Flutter Sort 객체 목록 Comparable 추상 클래스를 사용하여 내림차순
reversed 속성을 사용하여 개체 목록을 내림차순으로 정렬할 수 있습니다. 목록에 있는 객체의
Iterable
를 반환합니다.class Customer extends Comparable {
String name;
int age;
Customer(this.name, this.age);
@override
String toString() {
return '{ ${this.name}, ${this.age} }';
}
// sort by Name (asc)
@override
int compareTo(other) {
return this.name.compareTo(other.name);
}
}
main() {
List<Customer> customers = [];
customers.add(Customer('Jack', 23));
customers.add(Customer('Adam', 27));
customers.add(Customer('Katherin', 25));
customers.reversed.toList();
print(customers);
}
산출:
[{ Katherin, 25 }, { Jack, 23 }, { Adam, 27 }]
먼저
Comparable
추상 클래스를 확장하고 compareTo()
메서드를 재정의한 다음 list.reversed.toList()
를 호출합니다..reversed
는 목록을 뒤집지 않습니다. 대신 원래 목록을 오름차순으로 정렬한 다음 내림차순을 반환합니다Iterable
. 마지막으로 .toList()
가 필요합니다.그러나 큰 목록은 어떻습니까?
다른 접근 방식을 살펴보겠습니다.
Dart/Flutter 정렬 객체 목록 라이브러리를 사용하여 내림차순
불변 컬렉션을 생성하고 Fast Immutable Collections 라이브러리를 직접 사용할 수 있습니다.
클래스는 이전 접근 방식(확장
Comparable
및 재정의compareTo()
방식)과 동일합니다. 그러나 훨씬 빠른 sortReversed()
를 사용합니다.import 'package:fast_immutable_collections/fast_immutable_collections.dart';
class Customer extends Comparable {
...
@override
int compareTo(other) {
return this.name.compareTo(other.name);
}
}
main() {
List<Customer> customers = [];
customers.add(Customer('Jack', 23));
customers.add(Customer('Adam', 27));
customers.add(Customer('Katherin', 25));
customers.sortReversed();
print(customers);
}
산출:
[{ Katherin, 25 }, { Jack, 23 }, { Adam, 27 }]
추가 자료
Reference
이 문제에 관하여(다트 정렬 개체 목록 내림차순), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tienbku/dart-sort-list-of-objects-descending-57go텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)