У меня есть метод, который генерирует объект каждый раз, когда я его выполняю, и мне нужно отменить порядок, с которым я их получаю. Поэтому я думал, что естественным способом сделать это будет Stack, поскольку это LIFO.
Однако Java Stack, похоже, не очень хорошо работает с новым потоковым API Java 8.
Если я это сделаю:
Stack<String> stack = new Stack<String>();
stack.push("A");
stack.push("B");
stack.push("C");
List<String> list = stack.stream().collect(Collectors.toList());
System.out.println("Collected: " + list);
Выход, который я получаю:
Collected: [A, B, C]
Почему он не выводит их в ожидаемый порядок LIFO для потока? Это правильный способ вымыть все элементы из стека в список справа (LIFO)?