Всего пару дней назад вышла восьмая версия Java, которая привносит много нового в язык. Кроме того, даже если не использовать новые языковые фишки, то, возможно, новая версия порадует вас улучшениями в производительности.
Java 8 (пока 1.8.0) была добавлена на Codeforces с теми же параметрами запуска JVM, как и другие версии Java: java.exe -Xmx512M -Xss64M -DONLINE_JUDGE=true -Duser.language=en -Duser.region=US -Duser.variant=US -jar %s
.
В настоящее время поддержка Java 8 осуществляется в тестовом режиме, давайте вместе протестим её на задачах нашего архива.
В качестве примера новых возможностей — код, сортирующий заданный набор строк в порядке лексикографического невозрастания:
import java.util.*;
public class Main {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
List<String> lines = new ArrayList<>();
while (scanner.hasNextLine()) {
lines.add(scanner.nextLine());
}
lines.stream().sorted((a, b) -> b.compareTo(a)).forEach(System.out::println);
}
}
}
Thanks, BTW Why don't you add C++11 in languages?
C++0x is already added
Замечательная новость! Хочется поблагодарить MikeMirzayanov за скорейшее добавление поддержки новой версии. Сам опробовал восьмерку 2-3 месяца назад, оставила только положительные впечатления!
p.s.: говорят, если заменить .stream() на .parallelStream(), то на достаточно больших входных данных будет существенный выигрыш в производительности, постараюсь найти результаты своих тестов (stream vs parallelStream vs Collections.sort) и выложить сюда!
Надо только мерять процессорное время, а не физическое
http://mirror.codeforces.com/contest/404/submission/6174479 In the above submission I used Arrays.setAll(lists, ArrayList::new), and it caused a MLE. But it was accepted once I replaced setAll with a loop.
because
Arrays.setAll(lists, ArrayList::new)
equals toCorrect call:
Which new features of JAVA 8 are very useful for our sport programming?
At Java 8 there is new implementation of HashSet (HashMap) for resisting of attack on they buckets. In some cases it mutate to "table of trees" and from this state it can mutate to "table of linked lists" back :-)
New string-hashing implementation, improved collision performance for string-valued containers.