31 Ocak 2019 Perşembe

Collectors toCollection metodu

Giriş
Döndürülen nesne List veya Map değil daha özel bir sınıf olsun istersek kullanırız. Eğer List, Map gibi arayüzleri kullanmak istersek toList(), toMap() metodları kullanılır.

Örnek - ArrayList
Şöyle yaparız.
ArrayList<SomeClass> list =
  inputStrings.stream()
    .map(SomeClass::doSomthing)
    .filter((someClazz)->{return someClazz!=null;})
    .collect(Collectors.toCollection(ArrayList::new));
Örnek - CopyOnWriteArrayList
Şöyle yaparız.
CopyOnWriteArrayList<Foo> list =
  fields.stream()
    .distinct()
    .collect(toCollection(CopyOnWriteArrayList::new));
Örnek - LinkedList
Şöyle yaparız
List<Integer> integers = Arrays.asList(1,2,3,4,5,6,6);
integers
    .stream()
    .filter(x -> x >2)
    .collect(Collectors.toCollection(LinkedList::new));
// output: [3,4,5,6,6]
Örnek - SortedSet
Elimizde şöyle bir kod olsun.
private static final String ALPHABET = "abcdefghijklmnopqrstuvwxyz";
Şöyle yaparız.
SortedSet<Character> set =
    ALPHABET.chars()
            .mapToObj(c -> (char) c)
            .collect(Collectors.toCollection(TreeSet::new));

Hiç yorum yok:

Yorum Gönder