我是Java新手,我正试图为我的班级做这个项目,但我在过去的一个小时里一直被困在一个单独的部分上。我试图调用“fromCity”数组下的变量的索引,但是所有的都返回为“-1”。我不知道它为什么这样做,因为在第二个数组“toCity”中,我在获取索引时没有问题。谢谢你的帮助。
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Arrays;
import static java.util.Arrays.asList;
public class EX07_2 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
ArrayList<String> fromCity = new ArrayList<>();
Arrays.asList("Los Angeles", "San Francisco", "Portland");
String[] toCity;
toCity = new String[3];
toCity[0] = "Seattle";
toCity[1] = "Denver";
toCity[2] = "Chicago";
int [][] distance = new int[3][3];
distance [0][0] = 1135;
distance [0][1] = 1016;
distance [0][2] = 2015;
distance [1][0] = 807;
distance [1][1] = 1250;
distance [1][2] = 2128;
distance [2][0] = 174;
distance [2][1] = 1240;
distance [2][2] = 2121;
System.out.println("Enter the name of a city to travel from: ");
String city1 = scanner.nextLine();
System.out.println("Enter the name of a city to travel to: ");
String city2 = scanner.nextLine();
int index1 = asList(fromCity).indexOf(city1);
int index2 = asList(toCity).indexOf(city2);
System.out.println(distance[index1][index2]);
}
}
1条答案
按热度按时间hc8w905p1#
主要的问题是
fromCity
是空的,因为Arrays.asList
没有分配给fromCity
(代码的缩进在某种程度上误导了这是一个链式调用,但它不是)。由于fromCity
已经是ArrayList
,使用asList(fromCity)
是毫无意义的。您可以直接获取索引(fromCity.indexOf(city1)
)。顺便说一句:你将面临
ArrayIndexOutOfBoundsException
,如果任何一个城市没有找到,因为你不检查如果索引是-1
之前使用它。