您可以使用Java中的Stream API和Lambda表达式来解决这个问题。以下是一种可能的实现方式:

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(11, 2, 5, 8, 9);
        
        int max = numbers.stream()
                .filter(n -> n < 11)
                .max(Integer::compareTo)
                .orElseThrow(() -> new IllegalArgumentException("No smaller value found"));
        
        System.out.println("Max smaller value: " + max);
    }
}

这段代码首先将数字列表转换为流,然后使用filter方法过滤出小于11的数字。接下来,使用max方法找到最大的数,使用orElseThrow方法在没有找到最大值时抛出异常。最后,打印出找到的最大值。

请注意,这段代码使用了Java 8及更高版本的特性,您需要确保您的Java版本符合要求

ListInteger有着数字11怎么找到小于它的最大值用Java代码不使用treeMap和for循环

原文地址: https://www.cveoy.top/t/topic/ixcL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录