从用户输入创建java列表

时间:2016-04-08 14:38:27

标签: java list

我有一个独特的问题要解决,而且我被卡住了。

我需要设计一个执行以下操作的程序:

  1. 从用户输入两个数字序列(整数)。
  2. 根据每个系列创建两个列表。
  3. 每个列表的长度必须由每个系列的第一个数字的值确定。
  4. 每个数字系列的其余数字都成为列表的内容。
  5. 我遇到的问题是试图隔离系列的第一个数字,以确定列表的长度。

3 个答案:

答案 0 :(得分:0)

我在这里试了一下,所以请告诉我这是否是您正在寻找的。你最好先提供你的尝试。

我还想指出,列表在很大程度上是动态的。你不必像普通阵列一样担心它们的大小。

    Scanner sc = new Scanner(System.in);
    ArrayList<Integer[]> addIt = new ArrayList<>();
    boolean choice = false;

    while(choice == false){
        String line = sc.nextLine();
        if(line.equalsIgnoreCase("n")){
            break;
        }
        else{
            String[] splitArr = line.split("\\s+");
            Integer[] convertedArr = new Integer[splitArr.length];
            for(int i = 0; i < convertedArr.length; i++){
                convertedArr[i] = Integer.parseInt(splitArr[i]);
            }
            addIt.add(convertedArr);
        } 
    }

这假设您使用空格分隔每个整数。如果要将数字与其他内容分开,只需修改split语句。

用户输入&#34; n&#34;退出。使用这一小段代码,您可以将每个Integer对象数组存储在主ArrayList中。然后,您可以对数据执行任何操作。您可以访问每个Integer对象数组的第一个元素以获取长度。由于您对如何隔离此值感到困惑,上面的代码段会为您完成此操作。

我还建议你在try-catch块中添加你的parse语句,以便为无法解析为整数的无效输入提供错误处理。

答案 1 :(得分:0)

这是使用默认数组执行此操作的一种方法。

import java.util.Scanner;

public class ScanList {

public static void main(String[] args){
  System.out.println("Array:");
  Scanner s = new Scanner(System.in);
  String line = s.nextLine();
  String[] nums = line.split(",");
  int[] result = new int[Integer.parseInt(nums[0])];
  for(int i = 0; i<result.length;i++){
    result[i]=Integer.parseInt(nums[i+1]);
  }
  for(int r:result){
    System.out.println(r);
  }
}
}

答案 2 :(得分:0)

这就是我提出的:

import { Routes } from './routes.jsx'; 

Meteor.startup( () => {
    render(<Routes />, document.body);
});