我无法在我的 java 代码中找到问题

i'm unable to find the problem in my java code

我正在尝试自学java,以下代码无法编译。

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        ArrayList<Strings> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        System.out.println(cars);
        cars.set(2, "Maruthi");
        System.out.println(cars);
        System.out.println(cars.size());
        for (int i = 0; i < cars.size(); i++) {
            System.out.print(cars.get(i));
        }

        System.out.print("Names: ");
        ArrayList<Strings> names = new ArrayList<String>();
        Scanner input = new Scanner();
        for(int j = 0; j < 5; i++){
            cars.set(i,input.nextLine());
        }
        System.out.println(names);
    }
}

上面的代码给我这个error.i无法在代码中找到问题。

首先你的数组列表参数必须是字符串而不是字符串,然后在你的第二个 for 循环中你将变量从 j 切换到 i,for 循环变量只能从循环内访问。如果从控制台获取输入,您的扫描仪也会接收一个参数

Scanner input = new Scanner(System.in);

这是可编译的代码。它可以工作,但仍然会在执行时抛出异常,您需要处理该异常

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> cars = new ArrayList<String>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        System.out.println(cars);
        cars.set(2, "Maruthi");
        System.out.println(cars);
        System.out.println(cars.size());
        for (int i = 0; i < cars.size(); i++) {
            System.out.print(cars.get(i));
        }

        System.out.print("Names: ");
        ArrayList<String> names = new ArrayList<String>();
        Scanner input = new Scanner(System.in);
        for(int j = 0; j < 5; j++){
            cars.set(j,input.nextLine());
        }
        System.out.println(names);
    }
}