具有不同类型的二维数组

时间:2013-02-26 21:19:48

标签: java arrays multidimensional-array

我有这个:

private float dir = 0f;
private boolean ch = true;
private String = "No";
private int aB = 5;

我现在怎样才能用这个值制作一个二维数组? 例如array1[][]

{ {0f, "true", "No", 5} }

或者我应该制作这样的数组?

private String array1[][];

将所有值保存为String,然后将parse保存为每个项目?

但我认为,这不是一个好的编程。

3 个答案:

答案 0 :(得分:2)

您可以使用抽象数组,IE使用Object作为类型。

Object array1[][];

然而,这看起来更像是你真的想上课。

class MyObject {
    private float dir;
    private boolean ch;
    private String str;
    private int aB;
// getters and setters omitted 
}

然后使用以下代码创建一个数组或集合:MyObject[] array1。如果您可以存储对象,这通常是更好的设计。

答案 1 :(得分:0)

使用对象而不是基元,例如

Object[][] vars = {{ new Float(0f); Boolean.TRUE, "No", new Integer(5) }}

但是,我不得不质疑为什么你真的需要这样做,可能是一个设计缺陷?

答案 2 :(得分:0)

大多数情况下,混合这样的值并不是一个好主意。它被称为锯齿状数组,许多语言都可以让你这样做。这在理论上很好,但在实践中,它可能会很难在以后维护您的代码。

您通常希望使用描述性变量名称来定义事物。由于Java是一种强类型语言,因此您可能希望创建一个将这些值作为成员变量的类,然后创建该类的数组。然后,如果你有任何特殊的操作,你可以制作处理这些值的特殊方法。

这有意义吗?