我想了解与Java 8流API一起使用时Stack类的行为。
Stack<Integer> s = new Stack<>();
s.push(1);
s.push(2);
s.push(3);
s.push(4);
s.stream().forEach( x-> System.out.print(x + " "));
Run Code Online (Sandbox Code Playgroud)
根据Stack类的约定,此代码应为print 4 3 2 1。
但是,它打印1 2 3 4。
基本上我想了解:
导致此行为的底层底层实施细节。
使用Stream API迭代有序集合时,其他类似的陷阱也是如此。
如果我想实现自己的Stack类,该类可以与Java 8 Streams很好地配合使用,则需要进行哪些更改?