Java List 是否存在 判断对象属性
时间: 2024-05-04 13:15:11 浏览: 9
可以使用Java 8的Stream API来判断List中是否存在对象属性。
假设有一个Student类:
```
public class Student {
private String name;
private int age;
// 省略getters和setters
}
```
现在有一个List<Student>,需要判断是否存在某个学生的名字为“张三”:
```
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 18));
students.add(new Student("李四", 19));
students.add(new Student("王五", 20));
boolean isExist = students.stream()
.anyMatch(student -> "张三".equals(student.getName()));
System.out.println(isExist);
```
输出结果为true,说明存在名字为“张三”的学生。
如果需要判断年龄是否大于等于18岁:
```
boolean isExist = students.stream()
.anyMatch(student -> student.getAge() >= 18);
System.out.println(isExist);
```
输出结果为true,说明存在年龄大于等于18岁的学生。
相关问题
java8 list实体对象 判断属性最大值和最小值
可以使用 Java 8 中的 Stream API 对 List 中的实体对象进行操作,获取其中一个属性的最大值和最小值,并判断某个实体对象的该属性是否为最大值或最小值。假设实体对象为 Entity,属性为 value,代码如下:
```
List<Entity> list = new ArrayList<>();
// 添加实体对象到列表中
OptionalInt maxValue = list.stream()
.mapToInt(Entity::getValue)
.max();
if (maxValue.isPresent()) {
int max = maxValue.getAsInt();
boolean isMax = list.stream()
.anyMatch(entity -> entity.getValue() == max);
// 判断某个实体对象的 value 属性是否为最大值
}
OptionalInt minValue = list.stream()
.mapToInt(Entity::getValue)
.min();
if (minValue.isPresent()) {
int min = minValue.getAsInt();
boolean isMin = list.stream()
.anyMatch(entity -> entity.getValue() == min);
// 判断某个实体对象的 value 属性是否为最小值
}
```
以上代码将列表中的实体对象的 value 属性映射为 int 类型,然后使用 max() 和 min() 方法获取最大值和最小值。使用 anyMatch() 方法判断某个实体对象的 value 属性是否为最大值或最小值。
java 判断类属性是否为List
可以使用反射来判断一个类的属性是否为List类型,可以按照以下步骤进行:
1. 使用Class类的forName方法获取该类的Class对象;
2. 使用Class类的getDeclaredField方法获取该类的指定属性;
3. 使用Field类的getType方法获取该属性的类型;
4. 使用Class类的isAssignableFrom方法判断该类型是否为List类型。
以下是一个示例代码:
```java
import java.lang.reflect.Field;
import java.util.List;
public class MyClass {
private List<String> myList;
private String myString;
public static void main(String[] args) {
Class<?> clazz = null;
try {
clazz = Class.forName("MyClass");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
if (List.class.isAssignableFrom(field.getType())) {
System.out.println(field.getName() + " is a List");
} else {
System.out.println(field.getName() + " is not a List");
}
}
}
}
```
输出结果为:
```
myList is a List
myString is not a List
```