判断List是否只含有某个值用Stream怎么判断
时间: 2023-12-20 08:06:08 浏览: 137
可以使用 Stream 的 allMatch() 方法来判断 List 是否只含有某个值,示例如下:
List<Integer> list = Arrays.asList(1, 1, 1);
boolean allOnes = list.stream().allMatch(i -> i == 1);
在上述例子中,allOnes 的值将会是 true,因为 List 中所有的元素都是 1。如果 List 中有任何一个元素不等于 1,则 allOnes 的值将会是 false。
相关问题
java stream判断list里某个属性是否唯一
在Java中,可以使用Stream API来高效地判断列表(List)中某个属性是否唯一。假设我们有一个Person对象列表,每个Person有一个名为"name"的属性,你可以这样做:
```java
List<Person> people = ...; // 初始化包含Person对象的列表
// 使用distinct()方法移除重复的元素,再count()统计数量
boolean isUniqueName = people.stream()
.map(Person::getName) // 提取name属性
.distinct() // 去重
.count() // 统计数量
== people.size(); // 判断是否与原列表长度相等
if (isUniqueName) {
System.out.println("名字是唯一的");
} else {
System.out.println("存在重复的名字");
}
```
这里假设`Person::getName`是一个Lambda表达式,它返回每个Person对象的名字。如果`isUniqueName`为true,则表示所有人的名字都是独一无二的。
获取List中某个属性的所有值,判断是否存在某个值
好的,您可以使用 Java 8 的 Stream API 来实现这个功能。假设您有一个包含对象的 List,每个对象都有一个属性,您想要获取该属性的所有值并判断是否存在某个特定的值,可以按照以下方式操作:
假设您的对象类名为 ObjectClass,属性名为 property,要查找的值为 targetValue:
```java
List<ObjectClass> originalList = ...; // 原始的 List
boolean exists = originalList.stream()
.map(ObjectClass::getProperty) // 获取每个对象的 property 属性值
.anyMatch(targetValue::equals); // 判断是否存在 targetValue
if (exists) {
// 存在 targetValue 的处理逻辑
} else {
// 不存在 targetValue 的处理逻辑
}
```
这里使用了 `map` 方法来将每个对象转换为其属性值,然后使用 `anyMatch` 方法来检查是否存在与 `targetValue` 相等的值。如果存在,`exists` 变量将设置为 `true`,否则将设置为 `false`。
请将 `PropertyType` 替换为您实际的属性类型,将 `targetValue` 替换为您要查找的值。
阅读全文