Java Hamcrest matcher等价于sql联接操作
我有两个包含对象的列表,例如: list1有对象person 此人具有以下属性: 姓名、身份证、地址 列表2包含对象employee 员工具有以下属性: 工资 employee中的id等于person中的id 我正在尝试筛选/获取所有名为Java Hamcrest matcher等价于sql联接操作,java,filter,matcher,hamcrest,Java,Filter,Matcher,Hamcrest,我有两个包含对象的列表,例如: list1有对象person 此人具有以下属性: 姓名、身份证、地址 列表2包含对象employee 员工具有以下属性: 工资 employee中的id等于person中的id 我正在尝试筛选/获取所有名为['john'、'wick'、'tom'] 如果我使用SQL语句,这是很容易做到的,但是在Java hamcrest或其他匹配器中是否有类似的方法 我被卡在下面的线路上 List selected = select(
['john'、'wick'、'tom']
如果我使用SQL语句,这是很容易做到的,但是在Java hamcrest或其他匹配器中是否有类似的方法
我被卡在下面的线路上
List selected = select(
list2,
having(
on(Employee.class).getId(),
equalTo("")
)
);
除了匹配器之外,您可能还需要使用流和谓词:
List<Person> selected = list1.stream()
.filter(person -> list2.stream().anyMatch(employee -> employee.getId().equals(person.getId())))
.collect(toList());
List selected=list1.stream()
.filter(person->list2.stream().anyMatch(employee->employee.getId().equals(person.getId()))
.collect(toList());
除了匹配器,您可能还需要使用流和谓词:
List<Person> selected = list1.stream()
.filter(person -> list2.stream().anyMatch(employee -> employee.getId().equals(person.getId())))
.collect(toList());
List selected=list1.stream()
.filter(person->list2.stream().anyMatch(employee->employee.getId().equals(person.getId()))
.collect(toList());
我只限于java 7Oh,我明白了。听到这个消息很难过。是和/或一种可能性?我知道,我只限于java 7Oh。听到这个消息很难过。是否存在和/或可能性?