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。