반응형
코딩을 하다보면, 사용자 형식의 데이타 구조를 소팅해서 사용해야 하는 경우가 있습니다.
dart 의 List나 map 같은 자료구조에 보면, sort라는 함수가 있는데요.
이를 활용하면 쉽게 구할 수 있습니다.
가장 기본적인 형태는 다음과 같겠죠.
Data라는 class가 있는데 이를 timestamp 기준으로 sorting이 필요하다고 가정하여 sample code를 작성해봤습니다.
class Data{
int timestamp; // timestamp 로
String s;
Data(this.timestamp,this.s);
toString(){
return "$timestamp:$s";
}
}
List<Data> datas=[
Data(1,"heee"),
Data(4,"yyy"),
Data(2,"kkk"),
Data(3,"hhph")
];
comp(Data a, Data b){
return a.timestamp - b.timestamp;
}
void main() {
datas.sort((a,b)=> comp(a,b));
for(final d in datas){
print("${d.toString()}");
}
}
또,
일반적으로 timestamp를 사용할때 DateTime 을 사용하는 경우가 많은데요.
이런 경우 DateTime의 millisecondsSinceEpoch 을 이용하면 쉽게 처리 할 수 있습니다.
DateTime을 사용하지 않고 millisecondsSinceEpoch로 timestamp를 사용하기도 하죠.
class Data{
DateTime timestamp; // timestamp 로
String s;
Data(this.timestamp,this.s);
toString(){
return "$timestamp:$s";
}
}
List<Data> datas=[
Data(DateTime.utc(2022,1,25),"heee"),
Data(DateTime.utc(2022,2,10),"yyy"),
Data(DateTime.utc(2022,1,5),"kkk"),
Data(DateTime.utc(2022,4,1),"hhph")
];
comp(Data a, Data b){
return a.timestamp.millisecondsSinceEpoch - b.timestamp.millisecondsSinceEpoch;
}
void main() {
datas.sort((a,b)=> comp(a,b));
for(final d in datas){
print("${d.toString()}");
}
}
해피 코딩!!
'Dart,Flutter' 카테고리의 다른 글
[Flutter] enum을 이용한 ui resouce 관리(1. image) (0) | 2023.01.26 |
---|---|
[Flutter] Flutter Widget Tip (0) | 2023.01.17 |
[Flutter] permission 설정하기 (0) | 2022.10.24 |
[Flutter] App route 구성하기. (0) | 2022.10.19 |
[Flutter] flutter_blue 설치 에러(\macos\Classes\FlutterBluePlugin.h' (OS Error)) (0) | 2022.09.17 |