द्वारा समूह के साथ गिनने का कार्यान्वयन मैं लैम्ब्डा अभिव्यक्तियों में गिनती के आधार पर समूह के कार्यान्वयन की तलाश कर रहा हूं और फ़िल्टर कर रहा हूं।जावा 8
select COUNT(employee_id), department_id from employee
GROUP BY department_id
HAVING COUNT(employee_id) > 1
क्या लैम्ब्डा अभिव्यक्तियों का उपयोग करके इसे प्राप्त करने का कोई आसान कार्यान्वयन है।
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
...
Map<Long, Long> map =
employees.stream()
.collect(collectingAndThen(groupingBy(Employee::getDeptId, counting()),
m -> { m.values().removeIf(v -> v <= 1L); return m; }));
नोट यहाँ groupingBy
द्वारा लौटाए गए नक्शे के अस्थिरता पर कोई गारंटी नहीं है कि, ताकि आप अतिभारित संस्करण का उपयोग और एक ठोस आपूर्ति कर सकते हैं:
उत्तर के लिए धन्यवाद – Patan