我正在创建一小段代码,需要从列表中获取一项并将其与值进行比较。
尽管导入java.util.List并编写正确的方法调用,但仍然声称它“找不到符号-方法getItem(int)”
import java.util.*;
import java.util.List;
public static int duplicateCharacters(String input) {
boolean number = false;
int highest = 0;
int secondHighest = 0;
if(input.length()<=1){
return -1;
}
int[] newList = new int[] {0,1,2,3,4,5,6,7,8,9};
for(int i=0; i<input.length(); i++){
number = false;
int currentValue = input.charAt(i);
for(int q=0; q<newList.length; q++){
if(newList.getItem(q) == currentValue){
number = true;
}
}
if(number == true){
if(currentValue>highest){
secondHighest = highest;
highest = currentValue;
}
}
}
return secondHighest;
}
在Java文档中,它指出:
getItem
公共字符串getItem(int索引)获取与指定索引关联的项目。
参数:
index-物品的位置返回:
与指定索引相关联的项目另请参阅:
getItemCount()
答案 0 :(得分:1)
由于newList是一个数组,因此您可以尝试使用数组索引访问元素。请参阅下面的代码段-
public static int duplicateCharacters(String input)
{
boolean number = false;
int highest = 0;
int secondHighest = 0;
if(input.length()<=1){
return -1;
}
int[] newList = new int[] {0,1,2,3,4,5,6,7,8,9};
for(int i=0; i<input.length(); i++){
number = false;
int currentValue = input.charAt(i);
for(int q=0; q<newList.length; q++){
if(newList[q] == currentValue){
number = true;
}
}
if(number == true){
if(currentValue>highest){
secondHighest = highest;
highest = currentValue;
}
}
}
return secondHighest;
}
答案 1 :(得分:1)
首先,以下行未实例化List
:
int[] newList = new int[] {0,1,2,3,4,5,6,7,8,9};
您可以通过以下代码行替换它来使其工作:
List<Integer> newList = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
请注意,我将int
替换为Integer
:这是因为您不能使用原语作为列表类型。替换不应在您的代码中产生明显的不同。
接下来,替换此for循环:
for(int q=0; q<newList.length; q++){
if(newList[q] == currentValue){
number = true;
}
}
您不能在列表中使用list[index]
和list.length
。而是使用list.get(index)
和list.size()
。
您得到这样的东西:
for(int q = 0; q < newList.size(); q++){
if(newList.get(q)== currentValue){
number = true;
}
}
答案 2 :(得分:0)
您正在尝试使用get方法。 列表没有getItem()