/* package whatever; // don't place package name! */
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) {
List
<Class1
> data1
= Arrays.
asList(new Class1
(),
new Class1
()); List
<Class2
> data2
= Arrays.
asList(new Class2
(),
new Class2
());
// The following is what I'm trying to implement:
List
<BiConsumer
<Class1, Double
>> peeks1
= Arrays.
asList(Class1
::setOneNum, Class1
::setAnotherNum
); List
<BiConsumer
<Class2, Double
>> peeks2
= Arrays.
asList(Class2
::setSomeNum1, Class2
::setSomeNum2
);
helper(data1, peeks1);
helper(data2, peeks2);
}
private static <T> List<T> helper(List<T> data, List<BiConsumer<T, Double>> peeks) {
for(BiConsumer<T, Double> singlePeek: peeks){
data = data.stream()
.
peek(a
-> singlePeek.
accept(a,
Math.
random())) .collect(Collectors.toList());
}
return data;
}
private static class Class1 {
public void setOneNum(double d) {
}
public void setAnotherNum(double d) {
}
}
private static class Class2 {
public void setSomeNum1(double d) {
}
public void setSomeNum2(double d) {
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKCmltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwppbXBvcnQgamF2YS51dGlsLkVudW1TZXQ7CmltcG9ydCBqYXZhLnV0aWwuTGlzdDsKaW1wb3J0IGphdmEudXRpbC5TZXQ7CmltcG9ydCBqYXZhLnV0aWwuZnVuY3Rpb24uQmlDb25zdW1lcjsKaW1wb3J0IGphdmEudXRpbC5zdHJlYW0uQ29sbGVjdG9yczsKCgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCiAgICAgICAgTGlzdDxDbGFzczE+IGRhdGExID0gQXJyYXlzLmFzTGlzdChuZXcgQ2xhc3MxKCksIG5ldyBDbGFzczEoKSk7CiAgICAgICAgTGlzdDxDbGFzczI+IGRhdGEyID0gQXJyYXlzLmFzTGlzdChuZXcgQ2xhc3MyKCksIG5ldyBDbGFzczIoKSk7CgogICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgd2hhdCBJJ20gdHJ5aW5nIHRvIGltcGxlbWVudDoKICAgICAgICBMaXN0PEJpQ29uc3VtZXI8Q2xhc3MxLCBEb3VibGU+PiBwZWVrczEgPSBBcnJheXMuYXNMaXN0KENsYXNzMTo6c2V0T25lTnVtLCBDbGFzczE6OnNldEFub3RoZXJOdW0pOwogICAgICAgIExpc3Q8QmlDb25zdW1lcjxDbGFzczIsIERvdWJsZT4+IHBlZWtzMiA9IEFycmF5cy5hc0xpc3QoQ2xhc3MyOjpzZXRTb21lTnVtMSwgQ2xhc3MyOjpzZXRTb21lTnVtMik7CgogICAgICAgIGhlbHBlcihkYXRhMSwgcGVla3MxKTsKICAgICAgICBoZWxwZXIoZGF0YTIsIHBlZWtzMik7CiAgICB9CgogICAgcHJpdmF0ZSBzdGF0aWMgPFQ+IExpc3Q8VD4gaGVscGVyKExpc3Q8VD4gZGF0YSwgTGlzdDxCaUNvbnN1bWVyPFQsIERvdWJsZT4+IHBlZWtzKSB7CgogICAgICAgIGZvcihCaUNvbnN1bWVyPFQsIERvdWJsZT4gc2luZ2xlUGVlazogcGVla3MpewogICAgICAgICAgICBkYXRhID0gZGF0YS5zdHJlYW0oKQogICAgICAgICAgICAgICAgICAgIC5wZWVrKGEgLT4gc2luZ2xlUGVlay5hY2NlcHQoYSwgTWF0aC5yYW5kb20oKSkpCiAgICAgICAgICAgICAgICAgICAgLmNvbGxlY3QoQ29sbGVjdG9ycy50b0xpc3QoKSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZGF0YTsKICAgIH0KICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIENsYXNzMSB7CgogICAgICAgIHB1YmxpYyB2b2lkIHNldE9uZU51bShkb3VibGUgZCkgewoKICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIHNldEFub3RoZXJOdW0oZG91YmxlIGQpIHsKCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgQ2xhc3MyIHsKICAgICAgICBwdWJsaWMgdm9pZCBzZXRTb21lTnVtMShkb3VibGUgZCkgewoKICAgICAgICB9CgogICAgICAgIHB1YmxpYyB2b2lkIHNldFNvbWVOdW0yKGRvdWJsZSBkKSB7CgogICAgICAgIH0KICAgIH0KfQ==