You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码未直接使用ArrayList却正常运行,原因何在?

问题

我编写的以下Java代码能够正常运行,但我并没有直接使用ArrayList类,想请教各位这是为什么?

import java.util.Arrays;
import java.util.Collections;
class findMinMax{
    public static void main(String[] args){
        Integer[] arr2 = {2,1,35,-6,-2,6,9};
        int mymin = Collections.min(Arrays.asList(arr2));
        int mymax = Collections.max(Arrays.asList(arr2));
        System.out.println(mymin);
        System.out.println(mymax);
    }
}
解答
  • 你没直接写new ArrayList()但代码能正常运行,核心原因是Arrays.asList(arr2)方法已经帮你创建了一个列表对象——它是java.util.Arrays类内部的私有内部类ArrayList,和我们常用的java.util.ArrayList不是同一个类,但同样实现了List接口。
  • Collections.min()和Collections.max()方法只要求参数是Collection类型(List是Collection的子接口),所以这个内部类列表完全符合方法的参数要求,能直接被这两个方法接收并处理。
  • 补充一点:这个内部类ArrayList是基于你传入的数组实现的,它的大小是固定的,不支持添加、删除元素的操作,要是尝试执行这类操作会抛出UnsupportedOperationException。

内容的提问来源于stack exchange,提问作者Shashank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:40:27