我的意思是,Test.java

  private String Names;
  private List<InnerList> innerlist = new ArrayList<InnerList>();

InnertList.java

  private String id;
  private Long x;
  private Long y;
[class Test {
    Name: test
    innerlist: [class Innerlist{
        id: 1
        x: 0
        y: 0
    }]
}]

我有以下 list :

List<Test> list = new ArrayList<Test>();

现在,我需要根据两个条件更新x或y:if Name matched to "Test"id matched to 1.&

我试着写,但我不知道如何使用setter更新x/y.我需要过滤两次,但不知道如何把一个条件时getInnerList,因为条件是在变量的内部列表.

list.stream().filter(u->u.getName().equals("Test")).filter(t1->t1.getInnerList());

推荐答案

部分.filter(t1->t1.getInnerList())并没有真正意义,因为.filter(...)期望一个谓词作为参数,即一个带有布尔值作为返回值的lambda.我不是百分百确定你想要达到什么,但我认为这将解决你的问题:

list.stream()
  .filter(u -> "Test".equals(u.getName()))
  .flatMap(u -> u.getInnerList().stream())
  .filter(i -> "1".equals(i.getId()))
  .forEach(i -> {
    // write your setters on `i` here
  })

这里使用Stream::flatMap,我们获得了满足前一个过滤器的列表元素的innerList元素流.

Java相关问答推荐

如何为具有多对多关系的实体的给定SQL查询构建JPA规范?

在for—each循环中的AnimationTimer中的if语句'

是否保证在事务性块的末尾标记违反约束?

SpringBootreact 式Web应用程序的Spring Cloud Configer服务器中的资源控制器损坏

Exe4j创建的应用程序无法再固定在任务栏Windows 11上

如何让JVM在SIGSEGV崩溃后快速退出?

try 从REST API返回对象列表时出错

我怎样才能让IntelliJ标记toString()的任何实现?

在Frege中,我如何将一个字符串安全地转换为一个可能的Int?

将JSON字符串转换为Java类

buildDir:File!&#的getter解决方案是什么?39.被抛弃

Java.lang.invke.LambdaConversionException:实例方法InvokeVirtual的参数数量不正确

Oj算法 MatrixR032从字符串、归一化和余弦相似度计算创建

如何使用MapStrCut转换双向链接

如何在字节数组中反转UTF-8编码?

在Java中比较同一多维数组的两个不同的字符串元素

基于距离的APACHE POI公式判断

由于可为null,无法在kotlin中实现java接口

如何判断元素计数并在流的中间抛出异常?

Java 8 中 ByteBuffer 和 BitSet 的奇怪行为