【发布时间】:2018-11-26 13:00:53
【问题描述】:
我想对其进行过滤,使其仅使用 PART 和 FUNCTION 的每种不同组合的最新信息,这样我最终每个组合只会获得大约少数结果,而不是数千个过时的结果。 此处的 ID 是基于时间的。
这是我目前得到的:
while((line = br.readLine())!= null){
info = line.split(",");
Map<String,String> qgi=new HashMap<String,String>();
qgi.put("ID",info[0]);
qgi.put("FUNCTION",info[1]);
qgi.put("PART",info[2]);
qgi.put("STATE",info[3]);
sourceList.add(qgi);
}
for (int i = 0, len = sourceList.size(); i < len; i++) {
Map<String,String> gqi =(Map) sourceList.get(i);
if ( gqi.get("PART").equals("chw") && gqi.get("FUNCTION").equals("diskusage") && gqi.get("ID").equals("20181122125601"))//Get highest value with those parameters
{
resultList.add(gqi);
}
}
所以目前我的 ID 等于特定日期和时间,我希望它是该特定组合(chw 和磁盘使用)的最高 ID。
我想做一些类似的事情
if(a.get("b").equals("something") && a.get("c").equals("something") && thisCombinationsID >= everyOtherIDWithThisCombination{
resultList.add(a);
}
【问题讨论】:
-
像您的问题一样,您的地图中将有 4 个值,它们基本上只代表一个数据集,由单个 ID、单个 组成FUNCTION、一个PART和一个STATE。那是你想要的吗?您无法正确过滤它,因为它只有 4 个完全不同的值...查看@JBNizet 的答案并为每个数据集创建一个对象。这些可以从
Map或List过滤。
标签: java list dictionary