private List<Result> getQuerySimilarity(Method method, Document query) { List<Result> resultList = new ArrayList<>(); List<Result> list = new ArrayList<>(); for (Document document : DatabaseCollection.getDocumentList()) { double similarity = document.similarity(query, method); if (similarity != -1) { list.add(new Result(document, similarity)); } } list.stream() .sorted( (o1, o2) -> { double diff = o1.getSimilarity() - o2.getSimilarity(); if (diff < 0) { return 1; } else if (diff > 0) { return -1; } return 0; }) .limit(5) .forEach(resultList::add); return resultList; }