gpt4 book ai didi

java.lang.IndexOutOfBoundsException : Index: 1, 大小:1

转载 作者:行者123 更新时间:2023-11-30 08:06:42 26 4
gpt4 key购买 nike

正如标题所说,我的问题是,当我编译时,我在线程“主”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)

最佳答案

请查看这两个 block

循环直到 i < flightList.size()

但是getPrice(list.get(i)正在使用上面的索引,但在不同的列表上

for (int i=0; i<flightList.size(); i++) {
list = directFlights(flightList, city1, city2);
Price.add(getPrice(list.get(i)));

}

内部方法,directFlights()

列表是使用以下条件创建的,意思是 size of list will always be less than or equal to size of flightList .

但高于getPrice(list.get(i)正在使用来自父列表 (flightList) 的索引。

if (city1a.equals(city1) && city2a.equals(city2)) {
list.add(flightList.get(i));
}

关于java.lang.IndexOutOfBoundsException : Index: 1, 大小:1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34193898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com