2010-09-11 49 views
1

有沒有辦法將int和Double放在同一個數組中。我想有一個數組(p1[]),其中第一個(p1[0])是一個int,其餘所有元素都是雙精度。這可能嗎?在Java中的一個數組中的Int和Double

+0

爲什麼?聽起來更像是一個班,而不是一個數組。 – EJP 2010-09-12 08:40:04

回答

2

您可以通過使用Integer/Double超類(如其他地方指出的)的對象數組來完成此操作。

但是,我可能會強制執行類型安全通過實現一個對象具有Integer組件加上一個數組Double s,並存儲這些數組。好處是(儘管額外的複雜性)是你有類型安全性,並且不必將第一個元素投射到Integer,而是將其餘部分投射到Doubles。

+0

或者只是使用Map 。 – Carlos 2010-09-11 23:59:28

2

你可以有Object秒的陣列,在這種情況下,你可以把整型和雙對象吧。但是,我懷疑可能有比數組更好的存儲數據的方法。

編輯:當然你應該把它作爲Nikita建議的Number陣列。

1

如果內存非常重要,您可能需要使用long []。你可以存儲在「INT」容易,但「雙節」需要更多的工作:

long x = Double.doubleToRawLongBits(double value); 
double value = Double.longBitsToDouble(long x). 

但也許這是更好地創建一個特殊的類,然後轉移數組索引:

class Y { 
    int x; 
    double[] values; 
} 
+0

實際上,爲什麼不直接使用double [],並且投射第一個元素? – 2010-09-12 06:55:00