我正在尝试使用TreeMap按日期键在Java中对地图进行排序。这是我的代码
public static void sort() {
BufferedReader br;
String line;
String[] data;
Date date ;
DateFormat df = new SimpleDateFormat("dd-mm-YYY");
Map<Date,String> map = new TreeMap<Date,String>();
try {
br = new BufferedReader(new FileReader(
"/home/user/Desktop/train/2013-training_set.txt"));
int i=0;
while ((line = br.readLine()) != null) {
++i;
data = line.split(":");
map.put(df.parse(data[1]), line);
}
System.out.println(map.size()+" i = "+i);
Set st = mp.entrySet();
Iterator it = st.iterator();
while (it.hasNext()) {
Map.Entry me = (Map.Entry) it.next();
System.out.print(me.getKey() + "->:");
System.out.println(me.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
将date[1]
含有像(例如21-3-2013)以字符串格式和外观日期。问题在于,它仅在TreeMap(mp)中存储12个键值对(每月一个),而不是预期的103(i)。有任何想法吗
?
请参阅http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html。
y表示年,M表示年月,d表示月日。具体来说,小写的m是小时,而大写的M是月。
问题内容: 在主题函数返回的代码中迭代返回的映射时,键未按顺序显示。 我如何才能使键按顺序排列/对地图进行排序,以使键按顺序排列并且值对应? 这是代码。 问题答案: 在围棋博客:去映射在行动中有极好的说明。 当使用范围循环在地图上进行迭代时,未指定迭代顺序,并且不能保证每次迭代之间都相同。从Go 1开始,运行时间会随机化映射迭代顺序,因为程序员依赖于先前实现的稳定迭代顺序。如果需要稳定的迭代顺序,
问题内容: 我发现的每个示例都是按字母顺序进行的,而我需要按日期对元素进行排序。 我的ArrayList包含其数据成员之一是DateTime对象的对象。在DateTime上,我可以调用以下函数: 因此,我可以做一些比较: 我应该在if块内做什么? 问题答案: 你可以使对象具有可比性: 然后通过调用以下命令对其进行排序: 但是,有时你不想更改模型,例如想要对几个不同的属性进行排序时。在这种情况下,你
问题内容: 让我们 我想按日期和时间键对输出进行排序。 非常感谢你。 问题答案: 对于GNU排序: 按月份按第二列排序(这样,“三月”排在“四月”之前) 在数字模式下按第三列排序(因此,“ 9”位于“ 10”之前) 按第四列排序。 请参见手册中的更多详细信息。
问题内容: 我有一个带有几个键值对的对象数组,我需要根据’updated_at’对它们进行排序: 这样做最有效的方法是什么? 问题答案: 您可以使用。 这是一个例子:
问题内容: 我有一个对象数组,如下所示: 我想按排序。 我尝试这样做如下: 但是这些尝试都没有成功。我得到的结果是: 这是小提琴。 问题答案: 使用构造函数并执行类似的操作。 或通过将日期字符串反转后使用字符串比较。
问题内容: 我想有一个仅基于键排序的。值不应该排序。我尝试使用番石榴来构建某些东西,但是由于值类型未实现,所以无法使用它。 我曾考虑过要获得一个密钥,然后遍历排序集中的每个密钥以获取各种值,但是我希望使用Guava中的现有(尚未发现)功能,而不是使用这种 hack 。 注意:我不会制作工具,因为它与我的实际对象无关。 输入/输出示例: 印刷品: 问题答案: 返回,因此创建后将无法对其进行排序。但是