使用java8新特性实现:list中存储合同实体集合,返回list集合中实体属性:合同类型不等于2,或者合同类型等于null或者合同类型等于空字符串的数据
时间: 2024-10-20 12:13:41 浏览: 22
在Java 8中,你可以利用Stream API来轻松处理这样的需求。首先,假设你有一个List<Contract>,其中Contract类包含合同类型属性type。以下是如何实现该功能:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
class Contract {
private int type;
// 构造函数、getter/setter...
}
List<Contract> contracts = ...; // 你的合同列表
List<Contract> filteredContracts = contracts.stream()
.filter(contract -> contract.getType() == null || contract.getType().isEmpty() || contract.getType() != 2)
.collect(Collectors.toList());
```
这里我们使用了`stream().filter()`方法,它创建了一个流并应用过滤条件。如果合同类型是`null`、空字符串或不等于2,那么这个contract会被保留在过滤后的列表中。
相关问题
java list 分组_Java 将List中的实体类按照某个字段进行分组,value是对象的某个属性集合
你好!对于你的问题,可以使用 Java8 的 Stream API 和 Collectors.groupingBy() 方法来实现按照某个字段进行分组,value 是对象的某个属性集合的功能。以下是示例代码:
假设有一个名为 Person 的实体类,其中包含了 name 和 age 两个字段:
```
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
现在有一个包含多个 Person 对象的 List,我们要按照 age 字段进行分组,并将每个分组中的 Person 对象的 name 属性存储到一个 List 中:
```
List<Person> personList = Arrays.asList(
new Person("Alice", 20),
new Person("Bob", 25),
new Person("Charlie", 20),
new Person("David", 30),
new Person("Eva", 25)
);
Map<Integer, List<String>> groupedMap = personList.stream()
.collect(Collectors.groupingBy(Person::getAge, Collectors.mapping(Person::getName, Collectors.toList())));
```
上述代码中,我们使用 stream() 方法将 List 转化为 Stream,然后调用 Collectors.groupingBy() 方法,以 Person::getAge 作为分类器进行分组,最终得到一个 Map<Integer, List<String>> 对象,其中 key 为 age,value 为该 age 对应的 Person 对象的 name 属性集合。
在 Collectors.groupingBy() 方法中,我们使用 Collectors.mapping() 方法来将 Person 对象转化为其 name 属性,并收集到一个 List 中。
希望这个示例能够帮到你!
java处理实体list 根据不同属性分为不同的集合
可以使用 Java 8 的 Stream API 来处理实体 list,根据不同属性分为不同的集合。例如,可以使用 Collectors.groupingBy() 方法来根据实体的属性进行分组,然后将分组后的结果存储到一个 Map 中。以下是示例代码:
```
List<Entity> entities = ...; // 实体 list
Map<String, List<Entity>> groupedEntities = entities.stream()
.collect(Collectors.groupingBy(Entity::getProperty));
```
其中,Entity 是实体类,getProperty() 是获取实体属性的方法。这段代码将根据实体的属性将实体分组,并将分组后的结果存储到一个 Map 中,其中键为属性值,值为对应属性值的实体列表。
注意,这里的示例代码仅供参考,具体实现可能需要根据实际需求进行调整。
阅读全文