【发布时间】:2019-10-23 16:41:25
【问题描述】:
我有 2 个员工名单。第一个列表包含姓名和employeeId,第二个List 包含employeeId 和手机号码。员工 id 是主键。 要求是使用流媒体获取包含 id、Name 和 mobile no 的 List。
public class MainApp {
public static void main(String[] args) {
// TODO Auto-generated method stub
Employee emp1 = new Employee(101, "Shiv1");
Employee emp2 = new Employee(102, "Shiv2");
Employee emp3 = new Employee(103, "Shiv3");
Employee emp4 = new Employee(104, "Shiv4");
Employee emp5 = new Employee(101, 00001);
Employee emp6 = new Employee(101, 00002);
Employee emp7 = new Employee(101, 00003);
Employee emp8 = new Employee(101, 00004);
List<Employee> employeeNameList = new ArrayList<Employee>();
employeeNameList.add(emp1);
employeeNameList.add(emp2);
employeeNameList.add(emp3);
employeeNameList.add(emp4);
List<Employee> employeeMobileList = new ArrayList<Employee>();
employeeMobileList.add(emp5);
employeeMobileList.add(emp6);
employeeMobileList.add(emp7);
employeeMobileList.add(emp8);
employeeNameList.stream()
.filter(item -> item.getId() == 3)
.map(i -> i.setMobileNo(9089));
}
}
【问题讨论】:
-
您提供的输入的预期结果是什么?
-
您的问题是什么?有编译器错误吗?例外?输出不正确?请编辑您的问题,以便清楚出了什么问题。
-
您可以将
Map<id, employee>与一个列表一起使用并遍历另一个列表。 -
你的意思是像 SQL 中的
FULL OUTER JOIN,其中列表 1 中具有给定 id 的每个对象都与列表 2 中具有相同 id 的每个对象交叉连接,即使其中一个列表没有对象? IE。你希望结果是[[101, "Shiv1", 00001], [101, "Shiv1", 00002], [101, "Shiv1", 00003], [101, "Shiv1", 00004], [102, "Shiv2", null], [103, "Shiv3", null], [104, "Shiv4", null]? -
输出将是一个包含记录的employeeList:emp1(101,"shiv1",00001),emp2(102,"shiv2",00002) 像这样
标签: java java-8 java-stream