首页 > 试题广场 >

下面 Java 代码的运行结果为() import java

[单选题]
下面 Java 代码的运行结果为()
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        Optional<String> result = list.stream()
                .filter(s -> s.contains("a"))
                .sorted((s1, s2) -> s2.length() - s1.length())
                .findFirst();
        result.ifPresent(System.out::println);
    }
}
  • apple
  • banana
  • elderberry
  • cherry
答案:banana 解析: 代码主要通过Stream流对列表进行筛选、排序和获取操作,步骤如下: 1. **筛选(filter)**:保留包含字母"a"的字符串。 原列表元素中,"apple"(含"a")、"banana"(含"a")、"date"(含"a")符合条件,其余被过滤。 2. **排序(sorted)**:使用比较器`(s1, s2) -> s2.length() - s1.length()`,按字符串长度**从长到短**排序。 筛选后的元素长度: - "banana"(6个字符) - "apple"(5个字符) - "date"(4个字符) 排序后顺序为:`banana -> apple -> date`。 3. **获取第一个元素(findFirst)**:返回排序后的第一个元素"banana",并通过`ifPresent`打印。 因此,最终输出结果为`banana`。
发表于 2025-08-01 19:53:29 回复(0)

1.筛选(filter)
从列表里挑出包含字母"a"的元素,结果是:["apple", "banana", "date"]。
2.排序(sorted)
按照字符串长度从大到小排列,结果是:["banana", "apple", "date"]。
3.取结果(findFirst + ifPresent)
findFirst()取排序后的第一个元素,即"banana",然后打印出来。

发表于 2025-09-30 19:27:45 回复(0)