从列表中获取特定键并使用流存储到另一个列表

时间:2017-12-09 17:22:36

标签: java list java-stream

我有一个包含这些字段的类

cells().checkboxes.select(state)

我需要制作一个只有 plcUserReq.Controls.Add(new LiteralControl(" <div data-toggle='buttons' style='margin-top:-3px'> <label class='btn' for='Lines' style='padding:0px 0px 0px 0px; margin:0px 0px 0px 0px'> <input type='checkbox' autocomplete='off' name='chkbx' value='" + UID.ToString() + "'id='chk'"+ UID.ToString() + i.ToString() +"/> <i class='btn fa fa-plus-square-o' aria-hidden = 'true'> <img src='http://localhost:3162/images/moderator-red.gif'></i></label></div>"));

的新列表
$("[name='chkbx']").change(function () {
        if ($(this).is(':checked'))
            {
             $(this).next().find('i').attr('class', 'btn fa fa-check-square-o');
             $(this).next().find('img').attr('src', 'http://localhost:3162/images/moderator-red.gif');
            }
        else
        {
            $(this).next().find('i').attr('class', 'btn fa fa-plus-square-o');
            $(this).next().find('img').attr('src', 'http://localhost:3162/images/moderator-blue.gif');
        }
});

如何使用Java中的流来完成此操作?

我可以使用native for循环来完成此操作。但我想学习使用流来做到这一点。

class ListA {
    Long id
    double lat
    doubel lon
    Timestamp timestamp
}

我只想从ListA中获取lat和lon并将其存储到LatLng。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

List<ListA> listAs = this.dao.findAll();

List<LatLng> latLngs = listAs.stream()
                .map(listA -> new LatLng(listA.getLat(), listA.getLon()))
                .collect(Collectors.toList());

甚至可以保存变量:

List<LatLng> latLngs = this.dao.findAll().stream()
                .map(listA -> new LatLng(listA.getLat(), listA.getLon()))
                .collect(Collectors.toList());

答案 1 :(得分:-1)

在这种情况下,您可以通过过滤size == 3来执行此操作,因为这是这两者的标识符。您当然也可以过滤任何其他特征。

final List<String> newItems = items.stream()
                                   .filter(s -> s.length() == 3)
                                   .collect(Collectors.toList());

更新:更好的解决方案......

final List<String> newItems = items.stream()
            .filter(s -> "lat".equals(s) || "lon".equals(s))
            .collect(Collectors.toList());