您的位置:

JavaList筛选详解

一、JavaList 简介

JavaList 是一种常见的数据结构,它是一个有序的集合,可以存储重复的元素。JavaList 是 Java API 中最为常用的集合之一,可以根据索引快速访问元素,还可以在列表中任意地插入和删除项。

JavaList 接口有两个实现类:ArrayList 和 LinkedList。ArrayList 实现了可变大小的数组,LinkedList 实现了一个双向链表。两者均支持 get()set() 方法,但是 ArrayList 更适合于随机访问元素,而 LinkedList 更适合于添加和删除元素。

二、JavaList 筛选方法

1. 筛选出符合条件的元素

List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
List
    evenNumbers =
        numbers.stream()
               .filter(n -> n % 2 == 0)
               .collect(Collectors.toList());

   
  

上面的 Java 代码用 stream().filter() 筛选出了列表中的所有偶数,然后将它们放入一个新列表 evenNumbers 中。

2. 筛选第一个符合条件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
Optional
    firstNameWithC =
        names.stream()
             .filter(name -> name.startsWith("C"))
             .findFirst();

   
  

以上 Java 代码用 stream().filter().findFirst() 筛选出了列表中第一个以字母 "C" 开头的名字,并将其赋值给 firstNameWithC 变量。由于 firstNameWithC 是一个 Optional 对象,所以需要使用 isPresent() 方法来判断其中是否存在该元素。

3. 筛选出最后一个符合条件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
Optional
    lastNameWithB =
        names.stream()
             .filter(name -> name.endsWith("b"))
             .reduce((first, second) -> second);

   
  

以上 Java 代码使用 stream().filter().reduce() 筛选列表中最后一个以字母 "b" 结尾的名字,由于 reduce() 返回的是一个 Optional 对象,所以需要使用 isPresent() 方法来判断其中是否存在该元素。

4. 删除列表中符合条件的元素

List names = new ArrayList<>(Arrays.asList("Alice", "Bob", "Charlie", "Dave"));
names.removeIf(name -> name.startsWith("C"));

  

以上 Java 代码中用 removeIf() 方法删除了列表中所有以字母 "C" 开头的名字,其中 removeIf() 方法会返回一个 boolean 类型,表示是否有任何元素被删除。

5. 筛选并计数符合条件的元素

List names = Arrays.asList("Alice", "Bob", "Charlie", "Dave");
long nameCountWithB =
        names.stream()
             .filter(name -> name.contains("b"))
             .count();

  

以上 Java 代码使用 stream().filter().count() 筛选出列表中包含字母 "b" 的名字,并计算个数。注意,count() 方法返回的是一个 long 类型。

三、JavaList 筛选总结

本文介绍了 JavaList 的基础知识,并详细列举了 JavaList 筛选的五种方法,分别是:筛选出符合条件的元素、筛选第一个符合条件的元素、筛选出最后一个符合条件的元素、删除列表中符合条件的元素以及筛选并计数符合条件的元素。

这些方法都十分实用,具有很大的用途价值,希望本文能帮助读者更好地掌握 JavaList 的筛选技巧。