У меня есть HashMap
, который принимает Integer
как Ключ и массив Integer как значение , HashMap<Integer, Integer[]>()
.
Так что я 'm пытался получить максимальные значения (размер массива) каждый раз, когда я зацикливался на другом массиве, например:
long startTime = System.currentTimeMillis();
result[i] = map.entrySet().stream().mapToInt(element -> element.getValue().size()).max().getAsInt() + 1;
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println( totalTime);
После того, как я запускаю эту программу несколько раз на разных входах, я всегда получаю высокую задержку в первый разНапример:
29 // <- First time
0
0
0
0
0
Использование циклов:
long startTime = System.currentTimeMillis();
for (Map.Entry<Integer, List<Integer>> element: map.entrySet()) {
result[i] = result[i] < element.getValue().size() ? element.getValue().size() : result[i];
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println( " " + totalTime);
Вывод:
0
0
0
0
0
0
Конечно, это большая проблема на больших входах, так что здесь не так?