2015-09-16 10 views
20

Bazı kodlarımda bir akışı nasıl kullandığımı yeniden gözden geçirmeyi arıyorum. İlk örnek şu anda bunu yaptım. İkinci örnek, nasıl görünmeye çalıştığıdır.bir liste içine akışı listesi

Set<String> results = new HashSet<String>(); 

someDao.findByType(type) 
      .stream() 
      .forEach(t-> result.add(t.getSomeMethodValue())); 

Böyle bir şey olabilir mi? Eğer öyleyse bunu nasıl yapabilirim?

Set<String> results = someDao.findByType(type) 
      .stream() 
      .collect( /* ?? no sure what to put here */); 
+2

Sen Set içine toplamaya önce Akış elemanlarını eşleştirmeniz gerekir. 'someDao.findByType (type) .stream(). map (TheClass :: getValue) .collect (toSet());' –

cevap

28

Kullanım Collectors.toSet:

Set<String> results = someDao.findByType(type) 
     .stream() 
     .map(ClassName::getValue) 
     .collect(Collectors.toSet()); 
İlgili konular