java 判断list对象中的一个属性值是否相同

要判断Java中List对象的某个属性值是否全部相同,可以使用Java 8的流(Stream)API来简化操作。以下是一个示例代码,演示如何检查一个对象列表中的某个属性是否全部相同:

java

import java.util.List;
import java.util.Objects;

public class ListUtils {

public static <T> boolean allSameProperty(List<T> list, Function<T, ?> propertyExtractor) {
if (list == null || list.isEmpty()) {
return true;
}
Object firstValue = propertyExtractor.apply(list.get(0));
return list.stream().allMatch(item -> Objects.equals(firstValue, propertyExtractor.apply(item)));
}

public static void main(String[] args) {
// 示例对象
class Example {
private String property;

public Example(String property) {
this.property = property;
}

public String getProperty() {
return property;
}
}

// 示例列表
List<Example> examples = List.of(new Example("value1"), new Example("value1"), new Example("value1"));

// 使用allSameProperty方法检查property属性是否全部相同
boolean allPropertiesTheSame = allSameProperty(examples, Example::getProperty);

System.out.println("All properties are the same: " + allPropertiesTheSame);
}
}

在这个例子中,allSameProperty方法接受一个List和一个属性提取函数(propertyExtractor)。它首先检查列表是否为空或者null,然后提取第一个元素的属性值,并检查列表中的所有其他元素的相应属性是否等于这个值。如果所有属性都相同,它返回true,否则返回false。

posted @ 2024-03-08 14:48  穿林打叶  阅读(2568)  评论(0编辑  收藏  举报