gpt4 book ai didi

java - 从 List 更改为 ArrayList 会消除错误“List is an abstract and cannot be instantiated?

转载 作者:行者123 更新时间:2023-11-30 06:13:23 26 4
gpt4 key购买 nike

好吧,我是 List 的新手,我一直使用 Arrays,现在我正在编写一个程序,我以前无法判断数组的大小它正在创建,所以我正在使用 List。关键是我有一个方法可以返回无重复数字的列表。

这是我的方法:

public static List<Integer> arrayOfNoneRepeatingDigits(int limit) {

List<Integer> list = new ArrayList<Integer>();

for(int i = 0; i < limit; i++){
boolean ignore = false;
for(int j = i; j > 0; j/=10){
if(ignore == true) break;
for(int k = j/10; k > 0; k/=10){
if(j%10 == k%10){
ignore = true;
break;
}
}
}
if(ignore == false)list.add(i);
}
return list;
}

首先,我的方法数据类型是数组,但在我将其更改为列表后,这行代码出现错误:

List<Integer> list = new List<Integer>();

网上查了一下,原来应该把List换成ArrayList。我做到了,现在错误消失了,但我不知道为什么。

最佳答案

接口(interface)不能被实例化,所以没有new List<Integer>东西。接口(interface)的方法没有实现。这些方法的实现在子类中。 ArrayListList 的子类之一所以这就是为什么您可以使用您的第一个代码片段。

如果你写new List<Integer> , 这没有意义。因为List的方法没有实现,所以当你调用 add方法,编译器如何知道方法中的实现?

关于java - 从 List 更改为 ArrayList 会消除错误“List is an abstract and cannot be instantiated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com