Я хочу отфильтровать ее так, чтобы она использовала только самую свежую информацию для каждой отдельной комбинации PART и FUNCTION, чтобы в результате я получил лишь несколько результатов на одну комбинацию вместо тысяч устаревших.Идентификатор основан на времени здесь.
Это то, что у меня сейчас есть:
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);
}
}
Так что в настоящее время мой идентификатор равен конкретной дате и времени, и я хочу, чтобы он был самым высокимИдентификатор этой конкретной комбинации (chw и diskusage).
Я хочу сделать что-то вроде
if(a.get("b").equals("something") && a.get("c").equals("something") && thisCombinationsID >= everyOtherIDWithThisCombination{
resultList.add(a);
}