Java 排序数组列表<;HashMap<;字符串,字符串>&燃气轮机;按Unix时间戳
我想按Unix时间戳对Java 排序数组列表<;HashMap<;字符串,字符串>&燃气轮机;按Unix时间戳,java,arraylist,Java,Arraylist,我想按Unix时间戳对ArrayList中的数据进行排序。 我有两个ArrayList并合并它们:ArrayList 1.addall(ArrayList 2)。但我无法按Unix时间戳降序(最新优先)对内部数据进行排序 Arraylist 1: [{id=1, name=Aa, time=1394500000}, {id=2, name=Ab, time=1394500001}, {id=3, name=Ac, time=1394500002}] Arraylist 2 [{id=1,
ArrayList
中的数据进行排序。
我有两个ArrayList并合并它们:ArrayList 1.addall(ArrayList 2)代码>。但我无法按Unix时间戳降序(最新优先)对内部数据进行排序
Arraylist 1:
[{id=1, name=Aa, time=1394500000},
{id=2, name=Ab, time=1394500001},
{id=3, name=Ac, time=1394500002}]
Arraylist 2
[{id=1, name=AA, time=1394500001},
{id=2, name=AA, time=1394500000},
{id=3, name=Ac, time=1394500005}]
我真的很感谢你的帮助。提前感谢。创建一个类来保存这些属性似乎是一个更好的主意
class MyData {
private int id;
private String name;
private long time;
//all other stuff
}
然后使用ArrayList
并使用Collections对其进行排序。使用自定义比较器对其进行排序
Collections.sort(myList, new Comparator<MyData>(){
@Override
public int compare(MyData o1, MyData o2) {
return Long.compare(o1.getTime(), o2.getTime());
}
};
Collections.sort(myList,newcomparator(){
@凌驾
公共整数比较(MyData o1、MyData o2){
返回Long.compare(o1.getTime(),o2.getTime());
}
};
首先,如果您有一个列表
您可能做错了什么-使用对象。其次,您需要提供比随机字符串表示法更详细的信息,因为随机字符串表示法没有意义。@Boristeider抱歉添加整个代码。Collections.sort(arraylist1,new Comparator(){@Override public int compare(HashMap o1,HashMap o2){String value1=o1.get(“time”);String value2=o2.get(“time”);返回Long.compare(Long.valueOf(value1.longValue(),Long.valueOf(value2.longValue());}};
@jason-Yes(假设每个映射都是映射“time”->“value”
),但我强烈建议您使用类来执行此任务,因为这是一种更好的OO方法。最后一行也可以简化为返回Long.valueOf(value1)。compareTo(Long.valueOf(value2))
@ZouZou or.@boristesspidervalue1
和value2
是字符串
,不是长的
@ZouZou明白了-我想你是在谈论你的示例代码。