В ответе this уже ответили, что оба выражения равны, но в этом случае они дают разные результаты. Для данной int[] scores
, почему это работает:Arrays.stream (array) vs Arrays.asList (array) .stream()
Arrays.stream(scores)
.forEach(System.out::println);
... но это не делает:
Arrays.asList(scores).stream()
.forEach(System.out::println);
Насколько я знаю .stream()
можно назвать любой коллекции, в которой перечислены определенно. Второй фрагмент кода просто возвращает поток, содержащий массив как целое, а не элементы.
я вижу. Это просто странно, потому что я помню, как я делал такие вещи в прошлом, и это сработало. Будет ли это работать, если я заранее объявил Список следующим образом: «Список scoresAsList = новый ArrayList <> (score);'? –
AdHominem
@AdHominem Это не сработает, поскольку вы не можете передать массив конструктору 'ArrayList'. Вы можете передавать только коллекцию. – Eran
В качестве побочного примечания 'Stream.of (score) .forEach (System.out :: println);' делает то же самое, что и 'Arrays.asList (score) .stream(). ForEach (System.out :: println); '... – Holger