Item 47. Return Collection or Stream
class Example {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
// ์ปฌ๋ ์
์ธํฐํ์ด์ค ๋ฐํ
Collection<String> collection = list;
for (String s : collection) {
System.out.println(s);
}
// Iterable ๋ฐํ
Iterable<String> iterable = list;
for (String s : iterable) {
System.out.println(s);
}
// ๋ฐฐ์ด ๋ฐํ
String[] array = list.toArray(new String[0]);
for (String s : array) {
System.out.println(s);
}
// ์คํธ๋ฆผ ๋ฐํ
Stream<String> stream = list.stream();
for (String s : stream) { // ์ปดํ์ผ ์๋ฌ
System.out.println(s);
}
for (String s : (Iterable<String>) stream::iterator) { // ํ๋ณํ + ๋ฉ์๋ ์ฐธ์กฐ, ๋นํจ์จ์
System.out.println(s);
}
for (String s : iterableOf(stream)) { // ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ์ฌ์ฉ
System.out.println(s);
}
}
public static <E> Iterable<E> iterableOf(Stream<E> stream) {
return stream::iterator;
}
}Collection ์ธํฐํ์ด์ค
์ ์ฉ ์ปฌ๋ ์
๊ฒฐ๋ก
Last updated