0

我是 Java 的新手,在这里我试图尽量减少我编写的代码量。我想只使用一个 for 循环将元素添加到 2 个相同大小的数组中。我尝试了很多方法,但最终将相同的元素添加到两个数组中。如何循环两次并添加不同的元素?

这就是我使用两个for循环的方式......

public static void main (String[] args) throws IOException {

        BufferedReader reader =new BufferedReader(new InputStreamReader(System.in));

        int size = Integer.parseInt(reader.readLine());
        int[] arr1 = new int[size];
        int[] arr2 = new int[size];
        String[] elem1 = reader.readLine().split("\\s+");
        for(int i = 0; i < size; i++)
        {
            arr1[i] = Integer.parseInt(elem1[i]);
        }


        String[] elem2 = reader.readLine().split("\\s+");
        for(int j = 0; j < size; j++)
        {
            arr2[j] = Integer.parseInt(elem2[j]);
        }

        System.out.println(LargestPair( arr1, arr2, size));
    }
4

2 回答 2

1
String[] elem1 = reader.readLine().split("\\s+");
String[] elem2 = reader.readLine().split("\\s+");
for(int i = 0; i < size; i++)
{
    arr1[i] = Integer.parseInt(elem1[i]);
    arr2[i] = Integer.parseInt(elem2[i]);
}
于 2020-10-23T13:56:20.480 回答
0

像下面这样的东西应该可以工作:

 private static final Scanner SCANNER = new Scanner(System.in);

    public static void main(String[] args) throws IOException {
        System.out.print("Enter size of array: ");
        int size = Integer.parseInt(SCANNER.nextLine());

        Integer[] arr1 = getAsIntArray(size);
        Integer[] arr2 = getAsIntArray(size);

        System.out.println(LargestPair(arr1, arr2, size));
    }

    private static Integer[] getAsIntArray(int size) {
        System.out.print("Enter " + size + " space separated elements: ");
        return Arrays.stream(SCANNER.nextLine().split("\\s+"))
                .map(Integer::parseInt)
                .collect(Collectors.toList())
                .toArray(Integer[]::new);
    }

这是你的意思吗?

于 2020-10-23T14:01:01.820 回答