【发布时间】:2021-03-01 10:30:41
【问题描述】:
我有一个 StudentLogin 数组,其中名称是键,值是值
"studentLogin" : [
{
"name" : "firstName_key",
"value" : "<actual first Name value>"
},
{
"name" : "lastName_key",
"value" : "<actual last Name value>"
},
....
]
我有一个方法,我将 studentLogin 列表作为输入参数,我需要检查 firstName(key) 和 lastName(key) 是否存在于同一个索引中,如果是,那么我需要连接实际值来自同一索引的名字和姓氏。
我写了下面的方法,但是使用了两个流,我想把它转换成一个流。
public String convertStudentLoginToFullName(List<StudentLogin> studentLogin) {
if (null != studentLogin) {
String firstName = studentLogin.stream()
.filter(x -> "firstName_key".equalsIgnoreCase(x.getName()))
.map(x->x.getValue())
.findFirst()
.orElse(null);
String lastName = studentLogin.stream()
.filter(x -> "lastName_key".equalsIgnoreCase(x.getName()))
.map(x -> x.getValue())
.findFirst()
.orElse(null);
String fullName=firstName+" "+lastName;
return fullName;
}
}
return null;
}
【问题讨论】:
-
如果我理解正确,你想要
<actual first Name value> <actual last Name value>? -
是的,没错。
-
为什么
studentLogin甚至是一个列表?你不觉得,一个对象可以更好地代表信息吗? -
是的好问题,以这种方式思考,假设学生登录到大学中的不同应用程序,因此在这种情况下,studentLogin 可能对所有这些应用程序都有不同的 id/pwd,因此创建了一个列表,有意义吗?
标签: java list collections java-8 java-stream