2010-09-11 13 views
1

Existe-t-il un moyen de mettre un int et un double dans le même tableau. Je veux avoir un tableau (p1[]) où le premier (p1[0]) est un int et tout le reste des éléments sont des doubles. Est-ce possible?Int et double dans un tableau en Java

+0

Pourquoi? Cela ressemble plus à une classe qu'à un tableau. – EJP

Répondre

2

Vous pouvez faire cela en ayant un tableau d'objets qui sont des super-classes de Integer/Double (comme indiqué ailleurs).

Cependant, j'appliquerais peut-être la sécurité de type en implémentant un objet qui a un composant Integer plus un tableau de Double s, et en stocker un tableau. L'avantage (malgré la complexité supplémentaire) est que vous aurez le type de sécurité et ne pas avoir à lancer le premier élément à Integer tout en lançant le reste à Double s.

+0

Ou utilisez simplement la carte . – Carlos

2

Vous pouvez avoir un tableau de Object s, auquel cas vous pouvez y placer des objets Integer et Double. Cependant, je doute qu'il pourrait y avoir un meilleur moyen de stocker vos données qu'un tableau.

EDIT: Vous devriez bien sûr en faire un tableau Number comme Nikita l'a suggéré.

1

Si la mémoire est très importante, vous pouvez utiliser long [] à la place. Vous pouvez stocker le « int » facilement, mais le « double » a besoin de plus de travail:

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

Mais peut-être il est préférable de créer une classe spéciale, puis déplacer l'index du tableau:

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

en fait, pourquoi ne pas simplement utiliser double [] tout le chemin, et jeter le premier élément? –