为LinkedList使用add()和getFirst()时,为什么会出现此错误?

时间:2013-04-22 20:34:29

标签: java

这是我的代码:

public class FlightMap implements FlightMapInterface {

LinkedList<City> cityList = new LinkedList<City>();
LinkedList<City> nextCity = new LinkedList<City>();

/**
 * Creates an empty FlightMap
 */
public FlightMap() {        
}


public void loadFlightMap(String cityFileName, String flightFileName)
        throws FileNotFoundException {

    File cityList = new File(cityFileName);
    File flightsTo = new File (flightFileName);

    Scanner theCityFile = null;
    Scanner theFlightFile = null;
    Scanner theRequestFile = null;

    ArrayList<String> cityStringList = new ArrayList<String>();
    int counter = 0;

    try {
        theCityFile = new Scanner (cityList);
        theFlightFile = new Scanner (flightsTo);
    }
    catch (FileNotFoundException e) {
        System.out.println("No such file exists.");
    }

    while (theFlightFile.hasNextLine()) {
        cityStringList.add((theFlightFile.nextLine()).replaceAll("\t", ""));
    }

    while (theCityFile.hasNextLine()) {
        LinkedList<City> tempList = new LinkedList<City>();
        String tempCity = theCityFile.nextLine();
        nextCity.add(tempList); // ERROR
        nextCity.get(counter).add(new City(tempCity)); // ERROR

        for (int x = 0; x < cityStringList.size(); x++) {
            if (cityStringList.get(x).charAt(0) == tempCity.charAt(0)) {
                insertAdjacent(nextCity.get(counter).getFirst(), // ERROR
                        new City(cityStringList.get(x)).charAt(1) + "");  // ERROR
            }
        }
        cityList.add(new City(tempCity)); // ERROR
        counter++;
    }
}

我的错误:

  • 线程中的异常&#34; main&#34; java.lang.Error:未解析的编译 问题:
  • LinkedList类型中的方法add(City)不适用于参数(LinkedList)
  • 类型City
  • 的方法add(City)未定义
  • 方法getFirst()未定义类型City
  • 类型City
  • 的方法charAt(int)未定义

5 个答案:

答案 0 :(得分:1)

错误的确切含义。

LinkedList<City> tempList = new LinkedList<City>();
String tempCity = theCityFile.nextLine();
nextCity.add(tempList);

应该是

String tempCity = theCityFile.nextLine();
nextCity.add(tempCity);

您试图将LinkedList添加到另一个LinkedList。您只能将City类型的“节点”添加到您声明的LinkedList

答案 1 :(得分:1)

您不能add()列出LinkedList<City>的列表 - 其元素必须是City类型,而不是类型List<City>。您可以改用addAll。然后,您尝试add City CityList,而不是City - 显然Add没有getFirst方法。与charAtCity一样,您可以将List个对象视为String或{{1}} s。

答案 2 :(得分:0)

你正在尝试做一些没有意义的事情,所以你会遇到这些错误。

  

LinkedList类型中的方法add(City)不适用于参数(LinkedList)

您正在尝试将城市列表添加到城市列表中。

  

对于类型City

,方法add(City)未定义

您正在尝试将城市添加到城市(而不是城市列表,但您尚未定义此类方法。

  

对于City类型,未定义getFirst()方法   对于City

类型,方法charAt(int)未定义

您还没有定义这些方法,因此您无法调用它们。

答案 3 :(得分:0)

在此代码中:

    LinkedList<City> tempList = new LinkedList<City>();
    String tempCity = theCityFile.nextLine();
    nextCity.add(tempList);

您正尝试在LinkedList<City>列表中添加nextCity,这是错误所述的内容。

答案 4 :(得分:0)

首先,nextCity的类型为LinkedList&lt; City&gt;所以你不能添加一个LinkedList:

nextCity.add(tempList);

改为使用:

nextCity.addAll(tempList);

同样的问题是:

nextCity.get(counter).add(new City(tempCity));

你正在进入城市并再次添加城市。