java list 集合排除list
时间: 2023-11-07 17:01:59 浏览: 167
可以使用Java的Stream API来排除一个List集合中的元素。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> excludedNumbers = Arrays.asList(2, 4);
List<Integer> filteredNumbers = numbers.stream()
.filter(number -> !excludedNumbers.contains(number))
.collect(Collectors.toList());
System.out.println(filteredNumbers); // 输出: [1, 3, 5]
}
}
```
相关问题
java list集合使用stream分组
### 使用Java Stream API对List集合进行分组
对于给定的需求,可以利用`Stream API`中的`groupingBy`方法来实现列表的分组操作。此功能允许基于特定键函数的结果收集流中的元素[^1]。
下面是一个具体的例子,展示如何按照部门名称对公司员工列表进行分组,并筛选出工资大于2000的员工:
```java
import java.util.*;
import java.util.stream.Collectors;
class Employee {
private String name;
private String department;
private double salary;
public Employee(String name, String department, double salary) {
this.name = name;
this.department = department;
this.salary = salary;
}
// Getters and setters...
@Override
public String toString() {
return "Employee{name='" + name + "', department='" + department + "', salary=" + salary + '}';
}
}
public class GroupByExample {
public static void main(String[] args) {
List<Employee> employees = Arrays.asList(
new Employee("Alice", "HR", 3000),
new Employee("Bob", "Engineering", 4000),
new Employee("Charlie", "HR", 1900),
new Employee("David", "Engineering", 5000)
);
Map<String, List<Employee>> groupedEmployees =
employees.stream()
.filter(e -> e.getSalary() > 2000)
.collect(Collectors.groupingBy(Employee::getDepartment));
System.out.println(groupedEmployees);
}
}
```
上述代码创建了一个名为`employees`的员工列表,其中包含了姓名、所属部门以及薪资的信息。通过调用`.stream()`开启流处理模式之后,先应用过滤器排除掉那些不符合条件(即薪水不超过2000)的对象;接着采用`Collectors.groupingBy`依据指定的标准——这里是部门名(`department`)来进行分类汇总[^5]。
java list集合常见的案例
### Java List 集合常见用法
#### 获取交集
当处理两个 `List` 类型的数据结构时,有时需要获取它们之间的交集。尽管 `Set` 更适合这种场景,因为其不重复特性可以自然地排除重复项,但在某些情况下开发者可能偏好使用 `List`。
```java
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
public class IntersectionExample {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5, 6));
// 计算list1和list2的交集
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.distinct()
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [3, 4]
}
}
```
此代码展示了如何利用 Stream API 来计算两个列表间的交集[^1]。
#### 添加元素至列表
对于希望向已存在的 `List` 中添加新成员的情况,可以通过调用 `add()` 方法来完成这一操作:
```java
import java.util.List;
import java.util.ArrayList;
public class AddElementToList {
public static void main(String[] args) {
List<String> myList = new ArrayList<>();
myList.add("First Item");
myList.add("Second Item");
System.out.println(myList);
}
}
```
这段简单的例子说明了怎样创建一个新的 `ArrayList` 并往里面加入字符串类型的项目[^2]。
#### 使用Stream去除重复项与过滤条件
Java 8 引入了 Streams 功能,允许更加简洁高效的操作集合数据。下面的例子演示了如何去掉给定 `List` 中所有的空白字符串以及任何重复条目:
```java
import java.util.*;
import java.util.stream.Collectors;
public class FilterAndDistinct {
public static void main(String[] args) {
List<String> originalList = Arrays.asList("abc", "", "bc", "efg", "abc","", "jkl");
List<String> resultList = originalList.stream()
.filter(s -> !s.isEmpty())
.distinct()
.collect(Collectors.toList());
System.out.println(resultList);
}
}
```
上述程序先筛选掉了所有为空白字符(`""`)的对象再执行去重逻辑[^3].
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)