2013-02-26 105 views
0

維數組我有這樣的:兩種不同類型

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每個項目?

但我認爲,這不是一個好的編程。

+6

使用一堂課,盧克。 – dmon 2013-02-26 21:21:15

+0

班?怎麼樣...?請給我一些例子。 – Johnny 2013-02-26 21:23:05

+2

'class Blah {float dir;布爾值ch = true; ...} private Blah [] array;' – dmon 2013-02-26 21:24:15

回答

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。如果你可以存儲對象,這通常是更好的設計。

0

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

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

但是,我不得不質疑爲什麼你真的需要這樣做,可能是一個設計缺陷?

+0

你的意思是... private Object array1 [] [];? – Johnny 2013-02-26 21:24:25

0

大多數情況下,混合這樣的值並不是一個好主意。它被稱爲鋸齒狀的數組,許多語言讓你這樣做。理論上沒問題,但實際上可能會使以後維護代碼變得非常困難。

你一般都想用事實上的描述性變量來定義事物。由於Java是一種強類型語言,您可能希望創建一個具有這些值作爲成員變量的類,然後創建該類的數組。然後如果你有任何特殊的操作,使你可以製作處理這些值的特殊方法。

這有道理嗎?

相關問題