Aktywne Wpisy
![biaukowe](https://wykop.pl/cdn/c0834752/61ca9dec619fa7cb6fae543e196f37ec01f20d997fc846f514a14b8d9889b0e3,q60.jpg)
biaukowe +18
niemorzliwe +89
Nigdy nie kupujcie mieszkania w bloku który ma numer z literką M. Ja mam powiedzmy 13M m. 69 i co drugi kurier szuka mnie w bloku 13. Już nie wiem jak pisać na zamówieniach. Pisałem 13M/69 to jechali pod 13. Teraz piszę 13M m. 69 ale to też nic nie daje. Piszę komentarze do zamówień, ale to nic nie daje. Dzisiaj napisałem tak w uwagach do zamówienia: "Numer bloku to 13M, numer
Set distinctWords = Arrays.asList(args).stream()
.collect(Collectors.toSet());
@grizzly_joe: caly bajer Streamów polega na tym, zeby nie wiedziec co sie tam dzieje - tj. zostawic to implementacji do wyboru
Zamiast
Arrays.asList(args).stream()
pisz
Stream.of(args)
@grizzly_joe:
Nie tylko streamów. To bajer czegokolwiek co deklaruje, że zwracanym typem jest interfejs.
@sorhu: No tak, po to generalnie są, natomiast tutaj wydaje mi to byc "bardziej" bez znaczenia, bo caly bajer streamow polega na opisaniu operacji, ktore wrecz moga nigdy nie zostac wykonane.
Polecam zaglądać do źródeł na grepcode.
@M4ks: no chyba nie :)
@grizzly_joe:
Collectors.toSet() - > HashSet
Collectors.toList() -> ArrayList
Collectors.toMap() -> HashMap
@sorhu:
a dlaczego nie Arrays.stream(args) ?
Gdzie masz to napisane, że akurat takie implementacje zwraca?
Obie metody robią to samo, ale wg mnie Stream.of ładniej wygląda w kodzie.
Stream.of wyglada tak:
public static Stream of(T... values) {
return Arrays.stream(values);
}
No przecież mówiłem, że robią to samo.
Mnie chodziło o to, co napisałeś @grizzly_joe.
@Eoghan: cala idea streams polega na tym, ze definiujesz dzialanie a nie implementacje i rola Collectora jest wybranie najlepszego w danym momencie typu. Jak zrobisz stream parallel to juz wcale ArrayList taki
Collectors.toList()
Collectors.toSet()
Collectors.toMap()
itd.
Co prawda pewnie się nie zmieni... ale pisz poprawnie...
Z javadocs twojej metody ( ͡º ͜ʖ͡º)
@GotoFinal: Zreszta funkcja zwraca List<>, zeby zrobic z tego ArrayList<> to musisz upcastowac, a to juz wyrazny code-smell..
new ArrayList(cośtam)
.No, ale jak ma coś takiego robić, to lepiej użyć
Collectors.toCollection
.@sorhu: W sensie chodzi o to, co zwraca Collector ;)