像標題所說,我的問題是,當我編譯我在線程「主」java.lang.IndexOutOfBoundsException異常:索引:1,大小:1。這是問題來自的部分。java.lang.IndexOutOfBoundsException:索引:1,大小:1
編輯。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at pa6.FlightFinder.bestDirectPrice(FlightFinder.java:117)
at pa6.FlightFinder.main(FlightFinder.java:14)
public static ArrayList<String> bestDirectPrice(ArrayList<String> flightList,String city1, String city2) {
ArrayList<String> list = new ArrayList<String>();
ArrayList<String> Price = new ArrayList<String>();
for (int i=0; i<flightList.size(); i++) {
list = directFlights(flightList, city1, city2);
Price.add(getPrice(list.get(i)));
}
return Price;
我一直在網上尋找解決的辦法,所以我敢肯定,問題是,數組是太小了,但我仍然不知道如何解決它。我試圖讓代碼的上半部分將數組從數組中取出並放入新的數組中。
ArrayList<String> test = new ArrayList<String>(); //Array with list of flights
test.add("Orlando#DesMoines#194.88");
test.add("Portland#Orlando#287.74");
test.add("Buffalo#Boston#299.52");
test.add("Buffalo#Portland#264.80");
test.add("Chicago#Buffalo#223.56");
System.out.println(bestDirectPrice(test,"Buffalo","Orlando"));
這裏是我打電話的其他方法。
public static String getPrice(String price) { //Takes flight description, which is a string, as a parameter and returns price of flight
String[] sArray = price.split("#", -1);
String newPrice = "";
for (int i = 0; i<1; i++)
newPrice = sArray[2];
return newPrice;
}
public static ArrayList<String> directFlights(ArrayList<String> flightList, String city1, String city2) { // Method to create array list containing every direct flight from city1 to city 2
ArrayList<String> list = new ArrayList<String>();
for (int i=0; i<flightList.size(); i++){
String city2a = getDestinationCity(flightList.get(i));
String city1a = getOriginationCity(flightList.get(i));
if (city1a.equals(city1) && city2a.equals(city2)) {
list.add(flightList.get(i));
}
}
return list;
}
我一直堅持這一段時間,所以任何幫助將不勝感激!
編輯。
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.util.ArrayList.rangeCheck(ArrayList.java:653)
at java.util.ArrayList.get(ArrayList.java:429)
at pa6.FlightFinder.bestDirectPrice(FlightFinder.java:117)
at pa6.FlightFinder.main(FlightFinder.java:14)
一個很好的堆棧跟蹤將有助於在這裏了很多,我相信。 –
對不起,我還是很新的Java。什麼是堆棧跟蹤? – Scheids
@Scheids'stacktrace'是你得到的完全異常 –