java 无法从数组获取indexOf()

xoefb8l8  于 2023-10-14  发布在  Java
关注(0)|答案(1)|浏览(112)

我是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]);



        }
    }
hc8w905p

hc8w905p1#

主要的问题是fromCity是空的,因为Arrays.asList没有分配给fromCity(代码的缩进在某种程度上误导了这是一个链式调用,但它不是)。由于fromCity已经是ArrayList,使用asList(fromCity)是毫无意义的。您可以直接获取索引(fromCity.indexOf(city1))。
顺便说一句:你将面临ArrayIndexOutOfBoundsException,如果任何一个城市没有找到,因为你不检查如果索引是-1之前使用它。

相关问题