Java列表错误“找不到符号-方法getItem(int)”

时间:2019-03-03 12:28:13

标签: java

我正在创建一小段代码,需要从列表中获取一项并将其与值进行比较。

尽管导入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()

3 个答案:

答案 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()