/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.function.Consumer;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// 繰り返し処理に使うList
List<Integer> list = IntStream.rangeClosed(1, 10).boxed().collect(Collectors.toList());
myForEach
(list,s
-> System.
out.
print(s
));
MyList<Integer> myList = new MyList<>(list);
myList.
myForEach(s
-> System.
out.
print(s
)); }
private static <T> void myForEach(List<T> list, Consumer<T> consumer) {
for (T t : list) {
consumer.accept(t);
}
}
}
class MyList<T> {
List<T> list;
public MyList(List<T> list) {
this.list = list;
}
public void myForEach(Consumer<T> consumer){
for (T t : list) {
consumer.accept(t);
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuZnVuY3Rpb24uQ29uc3VtZXI7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkNvbGxlY3RvcnM7CmltcG9ydCBqYXZhLnV0aWwuc3RyZWFtLkludFN0cmVhbTsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8g57mw44KK6L+U44GX5Yem55CG44Gr5L2/44GGTGlzdAogICAgICAgIExpc3Q8SW50ZWdlcj4gbGlzdCA9IEludFN0cmVhbS5yYW5nZUNsb3NlZCgxLCAxMCkuYm94ZWQoKS5jb2xsZWN0KENvbGxlY3RvcnMudG9MaXN0KCkpOwogICAgICAgIG15Rm9yRWFjaChsaXN0LHMgLT4gU3lzdGVtLm91dC5wcmludChzKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCk7CgogICAgICAgIE15TGlzdDxJbnRlZ2VyPiBteUxpc3QgPSBuZXcgTXlMaXN0PD4obGlzdCk7CiAgICAgICAgbXlMaXN0Lm15Rm9yRWFjaChzIC0+IFN5c3RlbS5vdXQucHJpbnQocykpOwoJfQoJCgkgcHJpdmF0ZSBzdGF0aWMgPFQ+IHZvaWQgbXlGb3JFYWNoKExpc3Q8VD4gbGlzdCwgQ29uc3VtZXI8VD4gY29uc3VtZXIpIHsKICAgICAgICBmb3IgKFQgdCA6IGxpc3QpIHsKICAgICAgICAgICAgY29uc3VtZXIuYWNjZXB0KHQpOwogICAgICAgIH0KICAgIH0KfQoKY2xhc3MgTXlMaXN0PFQ+IHsKICAgIExpc3Q8VD4gbGlzdDsKCiAgICBwdWJsaWMgTXlMaXN0KExpc3Q8VD4gbGlzdCkgewogICAgICAgIHRoaXMubGlzdCA9IGxpc3Q7CiAgICB9CgogICAgcHVibGljIHZvaWQgbXlGb3JFYWNoKENvbnN1bWVyPFQ+IGNvbnN1bWVyKXsKICAgICAgICBmb3IgKFQgdCA6IGxpc3QpIHsKICAgICAgICAgICAgY29uc3VtZXIuYWNjZXB0KHQpOwogICAgICAgIH0KICAgIH0KfQ==