जावा पूर्वनिर्धारित वस्तु का एक ArrayList क्वेरी

वोट
1

मैं एक ArrayList (inputList), जो इस डेटा पार्स है:

id,name,quantity
1,foo,10
2,bar,20
3,foo,10
4,bar,10
5,qwerty,1

कोड:

...
List<FooRow> inputList = new ArrayList<FooRow>();
inputList = br.lines().map(mapToFooRow).collect(Collectors.toList());
...

public class FooRow{
private Integer id;
private String name;
private Integer value;
}

मैं एक कलेक्टरों कि मुझे नाम के आधार पर वर्गीकृत मूल्य की गिनती के साथ एक सूची प्रदान बनाना चाहते हैं:

name,value
foo,20
bar,30
qwerty,1

मैं लैम्ब्डा अभिव्यक्ति में यह करने के लिए एक वर्ग कलेक्टरों कैसे बना सकते हैं? धन्यवाद।

19/09/2018 को 13:36
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
2

आप उपयोग कर सकते हैं Collectors.groupingByऔर Collectors.summingInt:

Map<String, Integer> result =
    inputList.stream()
             .collect(Collectors.groupingBy(
                 FooRow::getName, Collectors.summingInt(FooRow::getValue)));
19/09/2018 को 13:49
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more