gpt4 book ai didi

java - 在 Java8 中的嵌套映射中搜索值

转载 作者:行者123 更新时间:2023-11-29 08:22:32 25 4
gpt4 key购买 nike

我正在尝试使用 java8 查看嵌套映射中的特定值。例子: map 是一个

Map<Integer, Map<String,String>> classStudentGrp;

还有一些记录是这样的

StudentId1:
StudentName:Andy
StudentAge:12
StudentAddress:xxxx

StudentId1:
StudentName:Anna
StudentAge:11
StudentAddress:yyyy

等等。

我在看类似的东西

classStudentGrp.forEach((sid,stu)->stu.forEach((sAttr,val)->val.equals("Andy")));

如果找到“Andy”,我想返回一个 boolean 值 (true) 或设置一个变量。我知道使用输入键和值的传统方法,但尝试在 lambda 中执行此操作。

最佳答案

我强烈建议您创建一个 Student类而不仅仅是一个 String格式:

StudentId1:
StudentName:Andy
StudentAge:12
StudentAddress:xxxx

Java 是一种面向对象的语言,最好直接使用它。您可以创建一个类:

class Student {
private String name;
private String id;
private int age;
private String address;
//Getters and setters
//Appropriate constructors
}

然后你可以这样做:

boolean value = classStudentGrp.values().stream()
.anyMatch(e -> e.getName().equals("Andy"));

这需要 Stream classStudentGrp 的值(Map<String, Student),取 Map 的值(A Stream<Students> ) 然后使用 anyMatch确定是否有任何 Students有名字“安迪”

关于java - 在 Java8 中的嵌套映射中搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56397900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com