jav*_*999 1 java spring entity hashmap
我有HashMap以下条目:
关键 - 狗对象 价值 - 狗的描述
Map<Dog, List<String>> DogsAndDescriptions;
Run Code Online (Sandbox Code Playgroud)
我想通过"Oldest Dog First"来命令HashMap .
狗是一个Entity具有以下字段,我想订购:
@Column(name = "BIRTHDAY")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime birthday;
Run Code Online (Sandbox Code Playgroud)
有可能这样做吗?
这不可能,因为HashMaps特别是无序列表.
您可以使用使用插入顺序的java.util.LinkedHashMap,但我认为您真正想要的是TreeMap,它将支持其中元素的自然排序.
如果你添加一个吐出最老狗的比较器,那么TreeMap会按顺序对它们进行排序.
TreeMap是Map接口的一个实现,因此您可以像现在一样使用它进行交互.
TreeMap<Dog, List<String>> dogsAndDescriptions = new TreeMap<Dog, List<String>>();
Run Code Online (Sandbox Code Playgroud)
将实例化你的实例(不要大写你的变量)dogsAndDescriptions Map.作为TreeMap构造函数的一部分你可以做的是传入一个Comparator,它将控制你的狗如何按键排序,或者使Dog类扩展Comparable并覆盖compareTo方法基本上类似于
class Dog implements Comparable<Dog>{
//somecode
@Override
public int compareTo(Dog o) {
return birthday.compareTo(o.birthday);
}
}
Run Code Online (Sandbox Code Playgroud)
所以你可以看到它会根据他们的生日来比较狗.我将在这里链接到一个例子,因为比较器的工作原理是我认为的另一个问题.但这是两种排序方式.
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |