Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java动态对象表_Java_Object_Dynamic - Fatal编程技术网

Java动态对象表

Java动态对象表,java,object,dynamic,Java,Object,Dynamic,我正在制作一个Java程序,但不知道如何启动。任务是: 我必须创建一个包含c列和r行的表。此参数是我读取的第一个参数(两个参数都可以高达100)。所以这一部分很清楚。然后,关于列的数量(我想使用for语句),我必须设置它们的类型。例如,如果我输入c=5和r=5,我将有一个表5x5。然后我需要读取5(c)个输入,其中1表示整数,2表示字符串,3表示布尔值 因此,如果我接着输入:1 2 3,这意味着前2种类型是整数,下2种是字符串,最后一种是布尔型。我想我需要像这样创建一个对象,但不确定如何“动态”

我正在制作一个Java程序,但不知道如何启动。任务是:

我必须创建一个包含c列和r行的表。此参数是我读取的第一个参数(两个参数都可以高达100)。所以这一部分很清楚。然后,关于列的数量(我想使用for语句),我必须设置它们的类型。例如,如果我输入c=5和r=5,我将有一个表5x5。然后我需要读取5(c)个输入,其中1表示整数,2表示字符串,3表示布尔值

因此,如果我接着输入:1 2 3,这意味着前2种类型是整数,下2种是字符串,最后一种是布尔型。我想我需要像这样创建一个对象,但不确定如何“动态”创建它——在我得到这种类型之后

之后,我将读取5(r)对象,每个对象都有这5个参数。下一步我将自己尝试,只是不确定如何实现这样的输入——使用我设置的类型创建对象

到目前为止,我得到的是:

import java.util.Scanner;
public class Tables {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int r = sc.nextInt();
        int c = sc.nextInt();
        int [] types = new int [c];


        for (int i = 0; i < c; i++){
            types[i] = sc.nextInt();
        }

        //have types but how to create an object now?

    }
}
import java.util.Scanner;
公共类表{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int r=sc.nextInt();
int c=sc.nextInt();
int[]类型=新的int[c];
对于(int i=0;i
有很多方法可以做到这一点,但在您的情况下,我将使用最简单、最直接的方法,即
开关
语句:

for (int i = 0; i < r; i++) {
    for (int j = 0; j < c; c++) {

        Object value = null;

        switch (types[j]) {
            case 1:
                value = sc.nextInt();
                break;
            case 2:
                value = sc.next();
                break;
            case 3:
                value = sc.nextBoolean();
                break;
        }

        // Do something with 'value' here.
    }
}
for(int i=0;i