关键词搜索

源码搜索 ×
×

java linq过滤及赋值二三例

发布2021-04-20浏览541次

详情内容

1、从集合中过滤出符合条件的元素(例子1)

//从集合List<>中获得符合条件的第一个元素
//例子中,ybService.getWaves() 返回 List<Yb_Wave>
Yb_Wave wave = ybService.getWaves().stream()
        .filter(w -> name.equals(w.getName()))
        .findAny()
        .orElse(null);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、从集合中过滤出符合条件的元素(例子2)

//lis.get(0).getChildren()本身是一个集合
List<MapLayer> lis = Utils.getMapLayers("public");
Arrays.stream(lis.get(0).getChildren())
        .filter(w -> subject.equals(w.getTitle()))
        .findAny()
        .orElse(null)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3、从集合中过滤出符合条件的元素,然后修改

String imgPath = "/base/images/";

List<WorkBAquatic> lis = this.workBAquaticDao.queryAllByLimit(offset, limit);
lis.stream()
        .filter(w -> w.getImg() != null)
        .forEach(w -> {
            w.setImg(imgPath + w.getImg());
        });
return lis;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2021.05.18

如果是JSONArray,如何应用linq呢?类似例子:

JSONArray devices = ...

devices.stream()
	.map(o -> (JSONObject) o)//多了一步对象转换?
	.filter(jo -> jo.get("regionIndexCode").toString().compareTo(regionCode) == 0)
	.forEach(jo -> {
		CameraDevice device = new CameraDevice(jo.get("indexCode").toString(),
				jo.get("name").toString(),
				jo.get("regionIndexCode").toString(),
				Integer.parseInt(jo.get("cameraType").toString()));

		lis.add(device);
	});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

linq给编码带来了方便。

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载