Google mnie zawiodło.
Tak z ciekawości:
Czy jest sposób, aby w streamie z jednego parametru zrobić dwa - tak, żeby każdemu początkowemu elementowi odpowiadały dwa elementy. Chodzi mi o to, żeby pętlę:
public void test(){
List<String> list = Arrays.asList("S1", "S22", "SS3");
for(String string: list){
System.out.println("Number of letters="+countLetters(string) + "\tNumber of digits=" + countDigits(string));
}
}
Wiem, że można to zrobić w ten sposób:
public void test(){
List<String> list = Arrays.asList("S1", "S22", "SS3");
list.stream().forEach(x -> System.out.println("Number of letters="+countLetters(x) + "\tNumber of digits=" + countDigits(x)));
}
Ale chciałbym na końcu mieć BiConsumer'a, a nie zwykłego Consumer'a, np:
List<String> list = Arrays.asList("S1", "S23", "SS3");
BiConsumer<Integer, Integer> consumer = (Integer a, Integer b) -> System.out.println("Number of letters=" + a + "\tNumber of digits=" + b);
list.stream()
// magia która zmapuje mi stringa na dwie liczby
.forEach(x,y -> consumer);
Czy w ogóle da się coś takiego zrobić?
Pair
to specjalizowany rodzaj krotki, a caly pomysl tablicy jest krotko mowiac poroniony...