【发布时间】:2014-09-07 05:37:55
【问题描述】:
我知道这个主题可以很好地涵盖,但他们只使用一个仅使用一个值的 Treemap,并且在相同值的情况下不会返回我想要的。
这是我的对象:
public classe myObjectToMap
{
long id;
double price;
String name;
long date;
public static void GetMyObject(long id, double price, String name)
{
myObjectToMap newObject = new myObjectToMap;
newObject.id = id;
newObject.price = price;
newObject.name = name;
newObject.date = new Date().getTime();
PlaceOfMyMap.myMap.put(id, newObject);
}
这是我的地图所在的位置,我放了一个 LinkedHashMap,但我没有在 Hashmap、TreeMap 和 LinkedHashMap 之间最好,我确实看到 TreeMap 给出了一个 Value 的比较器,但我没有到达要比较的地方一个以上的值。
public class PlaceOfMyMap
{
public static LinkedHashmap<Long, myObjectToMap> myMap = new LinkedHashmap<~>;
}
最后,这是我的主程序:
public class MainClass
{
public static void main(String args[]) throws Exception
{
MyObjectToHashmap.GetMyObject(1, 26, "Mat")
MyObjectToHashmap.GetMyObject(4, 25, "Tommy")
MyObjectToHashmap.GetMyObject(16, 24, "Kate")
MyObjectToHashmap.GetMyObject(63, 26, "Mary")
MyObjectToHashmap.GetMyObject(99, 24, "Ronny")
}
}
首先:我想按时间优先级从最高价格到最低价格对它们进行排序,这意味着我希望 Mat 排在第一位,Kate 排在第二位。
第二:我想按时间优先顺序将它们从最低价格排序到最高价格,这意味着我希望 Kate 排在第一位,Ronny 排在第二位。
有任何正确排序的提示吗?
【问题讨论】:
-
是的,为您的问题使用不同的结构。如果您想快速访问每个数据,请使用
HashMap。如果您需要通过两种方式对它们进行排序,请使用PriorityQueue和Comparator,每种排序行为一种。 -
好的,但我真的不知道 Object PriorityQueue 是如何工作的,我们可以在里面存储任何对象并用密钥再次找到它吗?还是更多列表?
标签: java sorting hashmap treemap linkedhashmap