java list filter出不符合条件的元素
时间: 2023-05-12 14:05:19 浏览: 79
可以使用 Java 8 的 Stream API 中的 filter 方法来过滤 List 中不符合条件的元素。具体实现可以参考以下代码:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
List<Integer> filteredList = list.stream()
.filter(i -> i % 2 == 0) // 过滤出偶数
.collect(Collectors.toList());
System.out.println(filteredList); // 输出 [2, 4, 6, 8, 10]
这段代码会将 List 中所有的偶数过滤出来,最终返回一个新的 List。
相关问题
java list 过滤元素_java的List中使用filter过滤出符合特定条件的元素List
在Java中,可以使用Stream API来对List中的元素进行过滤。以下是一个示例代码:
假设我们有一个List<String>类型的列表,我们想要过滤出所有以字母“a”开头的字符串:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "avocado", "pear");
List<String> filteredList = list.stream()
.filter(str -> str.startsWith("a"))
.collect(Collectors.toList());
System.out.println(filteredList);
```
输出结果为:[apple, avocado]
这里我们使用了Stream的filter方法来过滤出符合条件的元素,并使用collect方法将结果转换为List类型的对象。
除了startsWith方法,还可以使用其他的过滤条件,比如contains方法、正则表达式等等。具体可根据需求来选择合适的方法。
java list找到符合元素属性的元素
可以使用 Java 8 的 Stream API 来实现。假设你有一个 List,其中的元素是自定义的类,该类具有属性 name 和 age。现在你想找到其中所有年龄大于等于 18 岁的元素,可以按照以下方式实现:
```java
List<Person> people = new ArrayList<>();
// 添加 Person 对象到 List 中
List<Person> filteredPeople = people.stream()
.filter(person -> person.getAge() >= 18)
.collect(Collectors.toList());
```
上述代码中,我们使用 `stream()` 方法将 List 转换成 Stream,然后使用 `filter()` 方法过滤出符合条件的元素,最后使用 `collect()` 方法将 Stream 转换成 List。
如果你的类没有实现 `Comparable` 接口,你可能还需要自定义一个比较器来完成排序操作。例如,如果你想按照年龄从小到大排序,可以使用以下代码:
```java
List<Person> sortedPeople = people.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
```
上述代码中,我们使用 `sorted()` 方法按照年龄从小到大排序,并使用 `comparingInt()` 方法指定比较器。注意,这里使用了方法引用 `Person::getAge`,它等价于使用 lambda 表达式 `person -> person.getAge()`。
阅读全文