Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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_Arrays_String_Matrix_Int - Fatal编程技术网

用java制作混合二维数组

用java制作混合二维数组,java,arrays,string,matrix,int,Java,Arrays,String,Matrix,Int,我想要一个2D矩阵,一行是字符串,另一行是int。 可能吗? 还是必须将int保存为字符串,然后再将其转换为int?不,这是不可能的。数组对象只能有一个数据类型。您可以创建一个同时具有int和String属性的类,并使用它。永远不要使用对象[][],即使存在这样做的诱惑,这是一种邪恶的解决方法,黑客的失败多于成功。如果Object是一种可靠的技术,那么他们就不会为收集引入泛型了 不,这是不可能的。数组对象只能有一个数据类型。您可以创建一个同时具有int和String属性的类,并使用它。永远不要使

我想要一个2D矩阵,一行是字符串,另一行是int。 可能吗?
还是必须将int保存为字符串,然后再将其转换为int?

不,这是不可能的。数组对象只能有一个数据类型。您可以创建一个同时具有
int
String
属性的类,并使用它。永远不要使用
对象[][]
,即使存在这样做的诱惑,这是一种邪恶的解决方法,黑客的失败多于成功。如果
Object
是一种可靠的技术,那么他们就不会为收集引入泛型了

不,这是不可能的。数组对象只能有一个数据类型。您可以创建一个同时具有
int
String
属性的类,并使用它。永远不要使用
对象[][]
,即使存在这样做的诱惑,这是一种邪恶的解决方法,黑客的失败多于成功。如果
Object
是一种可靠的技术,那么他们就不会为收集引入泛型了

宁可使用对象

class MyEntry { 
    String foo;
    int number;
}
MyEntry[] array = new MyEntry[10];
但如果必须,可以使用两种类型-仅通过
对象
超类型

Object[][] arr = new Object[2][10];

arr[0][0] = "Foo";
arr[1][0] = new Integer(50);
而是使用一个对象

class MyEntry { 
    String foo;
    int number;
}
MyEntry[] array = new MyEntry[10];
但如果必须,可以使用两种类型-仅通过
对象
超类型

Object[][] arr = new Object[2][10];

arr[0][0] = "Foo";
arr[1][0] = new Integer(50);

您可以在二维数组中创建对象并将字符串和整数放在其中,但我不确定在数组中使用混合类型是否是个好主意。你们可能应该多描述一下你们的问题,这样我们才能想出更好的办法

您可以创建对象2D数组并将字符串和整数放在其中,但我不确定在数组中使用混合类型是否是个好主意。你们可能应该多描述一下你们的问题,这样我们才能想出更好的办法

是的。如果声明为对象矩阵,则可以存储字符串和整数(而不是int),困难在于正确检索它们:)

是的。如果声明为对象矩阵,则可以存储字符串和整数(而不是int),困难在于正确检索它们:)

如果执行对象的二维数组,则可以执行此操作,如在
object[]]myArray=new object[x][y]
中,x和y是数字

您所要做的就是在使用对象之前将其强制转换为预期的类型。例如,像
(String)myArray[0][3]

只有当您确定特定位置的对象将是什么类型时,才应该这样做

然而,这样做通常不是一个好主意。更好的解决方案是定义自己的数据结构类,该类将字符串数组和int数组作为成员变量。例如:

public class myData {
    String[] theStringArray;
    int[] theIntArray;

    public myData(String[] sArraySize, int[] iArraySize) {
        this.theStringArray = new String[sArraySize];
        this.theIntArray = new int[iArraySize);
    }

    ...
    // Additional getters / setters etc... 
    ...
}

如果在
Object[]]myArray=newobject[x][y]
中对
Object
进行二维数组,则可以执行此操作,其中x和y是数字

您所要做的就是在使用对象之前将其强制转换为预期的类型。例如,像
(String)myArray[0][3]

只有当您确定特定位置的对象将是什么类型时,才应该这样做

然而,这样做通常不是一个好主意。更好的解决方案是定义自己的数据结构类,该类将字符串数组和int数组作为成员变量。例如:

public class myData {
    String[] theStringArray;
    int[] theIntArray;

    public myData(String[] sArraySize, int[] iArraySize) {
        this.theStringArray = new String[sArraySize];
        this.theIntArray = new int[iArraySize);
    }

    ...
    // Additional getters / setters etc... 
    ...
}

您可以创建对象类型的数组,并在其中存储任何非基本体对象。 当您检索它们时,您需要确保检查它们的类

if(objArray[0] instanceof String) {
    // do string stuff
} else if(objArray[0] instanceof Integer) {
    // do integer stuff
}
等等


我认为最好创建一个新类来存储所需类型的对象,并使用getter和setter检索它们。它更安全、更稳定。

您可以创建对象类型的数组,并在其中存储任何非基本对象。 当您检索它们时,您需要确保检查它们的类

if(objArray[0] instanceof String) {
    // do string stuff
} else if(objArray[0] instanceof Integer) {
    // do integer stuff
}
等等


我认为最好创建一个新类来存储所需类型的对象,并使用getter和setter检索它们。它更安全、更稳定。

这是可能的,但通常是一个非常糟糕的主意。您可以创建对象[]的数组,并向其中添加字符串和整数。但不要这样做。如果需要连接字符串和int,请创建一个这样做的类,然后创建此类型的一维对象集合或数组。是否重复?做一个包装或使用一个塑料袋是可能的,但这通常是一个非常糟糕的主意。您可以创建对象[]的数组,并向其中添加字符串和整数。但不要这样做。如果需要连接字符串和int,请创建一个这样做的类,然后创建此类型的一维对象集合或数组。是否重复?制作包装器或使用,但它可以是字符串和整数从中继承的类型。
Integer
s继承,
int
不继承!一个
Object[][]
数组对于这一点就像是在自己的脚上射击。如果我的答案是错误的,任何建议使用它的人都是错误的。出于这个目的,Integer在功能上等同于int。因此OP可以使用Integer对象,但不管怎样,这并不意味着他最初的建议是个好主意。但它可以是字符串和整数继承的类型。
Integer
s继承,
int
不继承!一个
Object[][]
数组对于这一点就像是在自己的脚上射击。如果我的答案是错误的,任何建议使用它的人都是错误的。出于这个目的,Integer在功能上等同于int。所以OP可以使用Integer对象,但不管怎样,这并不能使他的原始建议成为一个好主意。无意冒犯,但两个单独的数组更糟糕。也许你是对的。我的主要目的是说明定义自己的数据结构会更好。无意冒犯,但两个单独的数组更糟。也许你是对的。我的主要目的是说明定义自己的数据结构