用户输入确定数组的长度

时间:2014-10-23 02:30:34

标签: java arrays

我正在尝试创建代码,从list1中的用户那里获取输入,并且根据它们创建list1的时间长短,将确定list2的长度。然后它将调用该方法并比较两个字符串,看它们是否相同。

我知道我的代码将list1和list2限制为仅仅6个整数,但那是因为我还不知道如何以其他方式做到这一点,我想知道你们是否可以提供帮助?

//A program that prompts the user to enter two list of integers
//and displays whether the two are identical

import java.util.Scanner;
import java.util.Arrays;

public class IdenticalArrays {
  public static void main(String[] args) {
    //Initialize Scanner
    Scanner input = new Scanner(System.in);

    //Start loop
    while (true) {
      //Arrays
      int[] list1 = new int[6];
      int[] list2 = new int[6];

      //User input
      System.out.println("Enter list1: ");
      for (int i = 0; i < list1.length; i++)
        list1[i] = input.nextInt();

      System.out.println("Enter list2: ");
      for (int i = 0; i < list2.length; i++)
        list2[i] = input.nextInt();

      //Call method
      if (equals(list1, list2))
        System.out.println("Two lists are identical");
      else
        System.out.println("Two list are not identical");

      //Continuation of loop
      System.out.println("Do you want to continue (Y/N)?");
      String s = input.nextLine();
      s = input.nextLine();
      s = s.toLowerCase();
      if (s.charAt(0) == 'n')
        break;
    }

  }
  public static boolean equals(int[] list1, int[] list2) {
    if (list1.length == list2.length) {
      Arrays.sort(list1);
      Arrays.sort(list2);
    } else
      return false;
    for (int i = 0; i < list1.length; i++) {
      if (list1[i] != list2[i])
        return false;
    }
    return true;
  }
}

1 个答案:

答案 0 :(得分:1)

你有几个选择。一,您可以事先询问用户他们想要输入多少项,然后使用该答案从一开始就设置两个数组长度。另外,您可以使用像List这样的动态结构来接受数据,然后从List创建一个数组并像以前一样继续。或者你可以制作一个非常大的数组,并希望用户在它们结束之前感到无聊。 (这不是正确的方法......)

但是,您实际上并不需要第二个列表,因为您只需将用户的每个输入与初始输入集中的相应条目进行比较即可。