【发布时间】:2015-11-26 01:11:45
【问题描述】:
![一个txt文件示例] [1] http://dox.bg/files/dw?a=f49baaafee
! [实际数字是多少] [2] http://dox.bg/files/dw?a=a911da0422
我得到了一个文本文件 iot.txt,我在其中添加了红色并将其数据存储在 Map<String, HashMap<String, Integer>> 中。
正如您在文本文件中看到的,我们有一个确切的时间段“2004-11-28 - 2004-12-04”,然后是语言(Java、Python 等),最后是一个整数(对这种语言感兴趣),它是这些语言的价值。
如何循环仅通过年份,更不用说具体的一周。例如
遍历 2004 并获得最少的兴趣。遍历 2006。另外,我有 2004-2015 年的年份,那么有没有什么快速的方法可以为每一年循环?
我想知道做这样的事情:
Map<String, HashMap<String, Integer>> everything = new HashMap<>();
HashMap<String, Integer> lang = new HashMap<>();
for(String yr: iot.keySet())
{
lang.put(yr, iot.get(yr).get("JavaScript").intValue());
everything.put(yr, lang);
for(String yr04 : iot.get("2004").keySet()) //this is where I have prob
{
int minValueInMap=(Collections.min(everything.values())); // there is smth wrong with "min"
if (entry.getValue()==minValueInMap) //entry cannot be resolved??
{
System.out.println(entry.getKey()); //entry cannot be resolved??
}
}
但是,由于我的键排序为“2004-11-28 - 2004-12-04”,因此无法完成。
【问题讨论】:
-
您必须遍历整个
keySet(),然后对每个键进行字符串比较以查看是否匹配。或者,您必须将数据存储在更适合您查询的地图中。 -
我认为您应该考虑在问题本身中添加代码和示例数据。