Java 排序数组列表<;HashMap<;字符串,字符串>&燃气轮机;按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,

我想按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, 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.@boristesspider
value1
value2
字符串
,不是
长的
@ZouZou明白了-我想你是在谈论你的示例代码。