9
เหตุใดสตรีม <T> จึงไม่ใช้ Iterable <T>
ใน Java 8 เรามีคลาส Stream <T>ซึ่งมีวิธีการอยากรู้อยากเห็น Iterator<T> iterator() ดังนั้นคุณคาดหวังว่าจะใช้อินเตอร์เฟสIterable <T>ซึ่งต้องการวิธีการนี้อย่างแน่นอน แต่นั่นไม่ใช่กรณี เมื่อฉันต้องการวนซ้ำสตรีมโดยใช้ลูป foreach ฉันต้องทำอะไรเช่นนี้ public static Iterable<T> getIterable(Stream<T> s) { return new Iterable<T> { @Override public Iterator<T> iterator() { return s.iterator(); } }; } for (T element : getIterable(s)) { ... } ฉันทำอะไรบางอย่างหายไปหรือเปล่า