为什么这里返回的对象必须由List接收而不是ArrayList

img


为什么这里返回的对象必须由List接收而不是ArrayList

list是对象实例名,而ArrayList是类名,你别搞混了。

根据参考链接,subList()方法的返回的是ArrayList的内部类SubList对象,而不是ArrayList对象,所以不能使用ArrayList类型来接收它。

测试如下:

参考链接:



import java.util.ArrayList;
import java.util.List;

public class ArrayListTest {

    public static void main(String[] args) {
    
        ArrayList arrayList = new  ArrayList();
        arrayList.add("tom");
        arrayList.add("jack");
        
        // https://blog.csdn.net/qq_43842093/article/details/125436583
        List list = arrayList.subList(0, 2);
        System.out.println(list);
    }

}


img

参考GPT,希望可以解决你的疑惑:

在Java中,subList()方法的参数是起始索引和结束索引,而不是一个小数。
此外,ArrayList的subList()方法返回的是一个List而不是ArrayList。

以下是根据你的要求生成的代码:

ArrayList<Integer> list = new ArrayList<>();
// 添加一些元素到list中
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);

// 获取list的子列表
List<Integer> sublist = list.subList(0, 2);
在这个例子中,我们创建了一个包含整数的ArrayList,并向其中添加了一些元素。
然后,我们使用subList()方法获取list的子列表,起始索引为0,结束索引为2(不包含2)。最后,将子列表存储在一个List变量sublist中。