数组列表" get"问题

时间:2015-05-07 15:45:04

标签: java swing arraylist combobox

在本课程中,我将获取存储在数据库中的公交车站列表的名称,并且我希望将它们显示在组合框中。但我得到以下错误:

ArrayList类型中的方法get(int)不适用于参数(String)

有什么建议吗?

// gets the stop names from the database
    int[] routeArray = BusStopInfo.getRoutes();
    int[] stopIdArray;
    ArrayList<String>stopName = new ArrayList<String>();
    for(int i = 0; i < routeArray.length; i++) {
        stopIdArray = BusStopInfo.getBusStops(i);
        for (int j = 0; j < stopIdArray.length; j++) {
            stopName.add(BusStopInfo.getFullName(stopIdArray[j]));
        }//for
    } // for
    String[] nameArray = new String[stopName.size()];
    nameArray = stopName.toArray(nameArray);
    for (int k = 0; k < stopIdArray.length; k++){
        stopListDeparture = stopName.get(nameArray[k]);
    }

    stopListDeparture.setSelectedIndex(0);
    setLayout(new BorderLayout());
    add(stopListDeparture, BorderLayout.NORTH);

4 个答案:

答案 0 :(得分:1)

我将从其他答案中提出不同的建议。请考虑以下几点:

nameArray = stopName.toArray(nameArray);
for (int k = 0; k < stopIdArray.length; k++){
    stopListDeparture = stopName.get(nameArray[k]);
}

您正在将列表stopName转换为String数组,然后遍历该数组并获取该数组中与...对应的项目?你确定那是什么意思吗?

而不是stopName.get(nameArray[k])我想或许你的意思是stopName.get(stopIdArray[k])。与nameArray不同,stopIdArray实际上是int的数组,因此编译运行得很好。

这里的赠品是你从0到stopIdArray的长度迭代,而是从不同的数组(nameArray)获取元素。有时这就是你的意思,但通常是代码味道。

答案 1 :(得分:0)

执行stopName.get(nameArray[k]);时,nameArray [k]为String。您需要执行stopName.get(Integer.parseInt(nameArray[k]));

答案 2 :(得分:0)

Ur问题位于以下行

stopListDeparture = stopName.get(nameArray[k]);

nameArray [k]返回一个字符串,您尝试使用该字符串从列表中检索一个特定元素。根据{{​​3}} get方法获取一个int并返回该列表中指定位置的元素。

答案 3 :(得分:0)

我找到了这样做的方法。我将JComboBox声明为。 谢谢大家的回答。

windowOverscan