Java8 Lambda表達式運用集錦

項目中運用到的Lambda表達式,簡化了Java8以前的寫法,包含了循環、判斷、求和、分組等。邊學邊做,記錄如下:

1、計算JSON字符串中value的sum值(map)

public static void main(String[] args) {
    String test = "{\"0\":4,\"1\":1,\"2\":105,\"3\":135,\"4\":132,\"5\":6,\"6\":0}";
    Map<Integer, Integer> map = JSON.parseObject(test, Map.class);
    Integer sum = map.values()
            .stream()
            .reduce(Integer::sum)
            .orElse(0);
    System.out.println(sum);
}

2、在List<Dto>中過濾某個指定key的數據(filter)

Java8之前要先循環列表,然後再list.contains()

public class DeviceUserBaseLineDto{
    private String device_id;
    private String deviceUserDtoStr ;
}
public static void main(String[] args) {
    String deviceId = "123";
    List<DeviceUserBaseLineDto> collect = deviceUserBaseLineDtos
                    .stream()
                    .filter(a ->deviceId.equals(a.getDevice_id())).collect(Collectors.toList());
//此處a->後可以多條件

    String deviceUserDtoStr = collect.get(0).getDeviceUserDtoStr();
}

3、提取List<Dto>中的某個屬性成集合

//從對象列表中提取一列(以name爲例)
List<String> nameList = userList.stream().map(UserInfo::getName).collect(Collectors.toList());
//提取後輸出name
nameList.forEach(s-> System.out.println(s));

Ps:在Idea中對Lambda表達式進行Debug調試:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章