Из коллекции fileMatches
я хочу присвоить карты с 10 самыми большими значениями новой коллекции под названием topTen
. Поэтому я стараюсь сделать коллекцию:
def fileMatches = [:].withDefault{[]}
new File('C:\\BRUCE\\ForensicAll.txt').eachLine { line ->
def (source, matches) = line.split (/\t/)[0, 2]
fileMatches[source] << (matches as int)
Я хочу перебрать мою коллекцию и взять 10 карт с самыми большими значениями. Одна из проблем, с которой я могу столкнуться, заключается в том, что результат этого не выглядит так, как я себе представлял. Например, одна запись:
C:\cygwin\home\pro-services\git\projectdb\project\stats\top.h:[984, 984]
Советы до сих пор были превосходными, но я не уверен, что моя коллекция организована так, чтобы использовать предложенные решения (у меня есть filename:[984, 984]
, когда, возможно, я хочу [filename, 984]
в качестве записей карты в моей коллекции) , Я пока не совсем разбираюсь в этом (например, как работает fileMatches[source] << (matches as int)
, поскольку он создает строку, которую я разместил сразу выше (с выводом source:[matches, matches]
).
Пожалуйста, сообщите, и спасибо за помощь!