java8判断list集合中在另外的list集合中是否存在该id
时间: 2024-05-12 12:14:32 浏览: 14
可以使用Java 8的Stream API来判断一个List集合中是否存在另一个List集合中的元素。具体代码如下:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5);
boolean exists = list1.stream().anyMatch(list2::contains);
if (exists) {
System.out.println("List1 contains elements from List2");
} else {
System.out.println("List1 does not contain elements from List2");
}
```
上述代码中,我们使用 `anyMatch` 方法来检查 `list1` 集合中是否存在 `list2` 集合中的元素。 `anyMatch` 方法接受一个 `Predicate` 参数,它用于测试流中的元素是否满足某个条件。在这里,我们使用了方法引用 `list2::contains`,表示将 `list2` 集合中的每个元素作为参数传递给 `contains` 方法进行比较。
如果 `list1` 集合中存在 `list2` 集合中的元素,那么 `anyMatch` 方法会返回 `true`,否则返回 `false`。最后,我们根据返回值打印出相应的提示信息。
相关问题
java中判断map集合中的list id 和 另外一个list中的id是否匹配
可以通过循环遍历的方式来判断Map集合中的List的id是否与另一个List中的id匹配。具体实现方式如下:
```java
Map<String, List<Object>> map = new HashMap<>();
List<String> idList = new ArrayList<>();
// 假设Map中的List的元素类型为Object,且id对应的key为"id"
for (List<Object> list : map.values()) {
for (Object obj : list) {
if (obj instanceof Map) {
Map<String, Object> item = (Map<String, Object>) obj;
if (idList.contains(item.get("id"))) {
// 匹配成功
}
}
}
}
```
上述代码中,我们先遍历Map集合,获取其中的List,然后再遍历List中的元素,判断元素是否为Map类型,如果是,则获取Map中的"id"对应的值,判断该值是否在另一个List中存在。如果存在,则说明匹配成功。
Java代码如何判断两个list集合中是否有一样的id
可以使用Java8的Stream API来判断两个list集合中是否有相同的id。具体实现如下:
假设有两个List对象,分别为list1和list2,每个对象都有一个getId()方法来获取id值。
```java
boolean hasSameId = list1.stream().map(Object::getId).anyMatch(list2.stream().map(Object::getId)::contains);
```
上述代码中,首先使用list1的stream()方法来创建一个Stream对象,然后使用map()方法将每个元素映射为id值。接着使用anyMatch()方法来判断list2的stream()对象中是否包含这些id值,如果存在则返回true,否则返回false。
需要注意的是,上述代码中Object::getId表示获取对象的id值,可以根据实际情况替换为其他方法。同时,如果list1和list2非常大,上述代码的性能可能不太理想,可以考虑使用并发流来提高效率。