升序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Test {
public static void main(String[] args) throws InterruptedException {
List<Order> list=new ArrayList<>();
for (int i=1;i<6;i++){
long time=System.currentTimeMillis();
list.add(new Order(time,"name"+i));
Thread.sleep(500);
}
Collections.sort(list, new Comparator<Order>() {
@Override
public int compare(Order o1, Order o2) {
if (o1.getCurrentTime() - o2.getCurrentTime() == 0)
return 0;
return o1.getCurrentTime() - o2.getCurrentTime() > 0 ? 1 : -1;
}
});
System.out.println(list.toString());
}
static class Order{
private long currentTime;
private String name;
Order(long currentTime,String name){
this.currentTime=currentTime;
this.name=name;
}
public long getCurrentTime() {
return currentTime;
}
public void setCurrentTime(long currentTime) {
this.currentTime = currentTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
return "currentTime:"+currentTime+",name:"+name;
}
}
}
输入结果
[currentTime:1639535627903,name:name1, currentTime:1639535628407,name:name2, currentTime:1639535628910,name:name3, currentTime:1639535629411,name:name4, currentTime:1639535629911,name:name5]
降序
return o1.getCurrentTime() - o2.getCurrentTime() > 0 ? -1 : 1;
输入结果
[currentTime:1639535792072,name:name5, currentTime:1639535791572,name:name4, currentTime:1639535791072,name:name3, currentTime:1639535790571,name:name2, currentTime:1639535790071,name:name1]
该博客展示了如何使用Java对包含时间戳的订单列表进行排序。代码示例中,自定义了Comparator来按时间升序和降序排列Order对象,时间戳由当前时间生成并带有随机延迟。通过修改Comparator的比较逻辑,可以轻松切换排序顺序。
2141

被折叠的 条评论
为什么被折叠?



