用java代码写一段stream流,检测一个list里的user对象有没有不是同一个部门的,如果有就抛出异常
时间: 2023-09-08 21:05:03 浏览: 184
Java8Test.java_java8_almosttog_stream流_
### 回答1:
这是一段使用Java代码实现的Stream流示例,用于检测一个List中的User对象是否属于同一个部门,如果不是则抛出异常。
```
import java.util.List;
public class StreamExample {
public static void checkUsersDepartment(List<User> users) throws Exception {
long count = users.stream().map(User::getDepartment).distinct().count();
if (count > 1) {
throw new Exception("Users are not in the same department");
}
}
}
class User {
private String department;
public User(String department) {
this.department = department;
}
public String getDepartment() {
return department;
}
}
```
### 回答2:
使用Java的Stream流可以方便地实现对List中User对象部门的检测,并判断是否有不同部门的情况。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.List;
class User {
private String name;
private String department;
public User(String name, String department) {
this.name = name;
this.department = department;
}
public String getDepartment() {
return department;
}
}
public class Main {
public static void main(String[] args) throws Exception {
List<User> userList = Arrays.asList(
new User("张三", "部门A"),
new User("李四", "部门A"),
new User("王五", "部门B"),
new User("赵六", "部门A")
);
// 检测是否有不同部门的User对象
boolean hasDifferentDepartment = userList.stream()
.map(User::getDepartment)
.distinct()
.count() > 1;
if (hasDifferentDepartment) {
throw new Exception("List中存在不同部门的User对象");
}
}
}
```
以上代码中,我们首先定义了一个User类,其中包含姓名和部门两个属性。然后在Main类中创建了一个包含了不同部门的User对象的List。通过使用Stream流,我们首先将List中的User对象转换为部门名称的流,然后使用distinct()方法去重,最后通过count()方法获取去重后的部门数量。如果数量大于1,则表示存在不同部门的User对象,我们就抛出一个自定义的异常。
阅读全文