我有一个多图,如下所示:
key1 : [Val1, Val2, Val3,...]
key2 : [Val4, Val5, Val6,...]
Key1的值不是唯一的(多亏了Multimaps)。
我必须找到Key1的唯一值并执行相应key2值(整数)的平均值。例如,将Val1与key1的所有其他值进行比较,并发现Val1和Val3是相同的字符串。现在保持Val1 / Val3并在Key2中存在平均值(Val4,Val6)。如何访问列表中的值?
添加代码和输出:
代码:
String patternString = "(fileName\":\"|dur\":|tdur\":)([^\",]*)";
Multimap<String, String> multimap1 = ArrayListMultimap.create();
try(BufferedReader br = new BufferedReader(new FileReader(file))) {
for(String line; (line = br.readLine()) != null; ) {
if(line.contains(".js\"")&&(line.contains("\"name\":\"v8.run\"")&&(line.contains("fileName\":")&&(line.contains("dur\":")&&(line.contains("tdur\"")))))){
Matcher matcher = Pattern.compile(patternString).matcher(line);
while (matcher.find()) {
multimap1.put(matcher.group(1).replaceAll(("\".*"),"_R"),matcher.group(2));
}
}
else if(line.contains(".js\"")&&(line.contains("\"name\":\"v8.compile\"")&&(line.contains("fileName\":")&&(line.contains("dur\":")&&(line.contains("tdur\""))))))
}
} catch (IOException e) {
e.printStackTrace();
}
for (String key : multimap1.keySet()){
System.out.println(key + ":" + multimap1.get(key));
}
输出:
fileName_R:[http://localhost/NotMyScript.js,http://localhost/MyScript.js, http://localhost/MyScript.js]
tdur_R:[40, 37, 16]
dur_R:[46, 87, 17]
如果js名称匹配(即http://localhost/MyScript.js),我必须平均tdur_R(即37&amp; 16)和dur_R(即87&amp; 17)。希望这次我更清楚。