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
Répondre
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.
Ou utilisez simplement la carte
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é.
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;
}
en fait, pourquoi ne pas simplement utiliser double [] tout le chemin, et jeter le premier élément? –
Pourquoi? Cela ressemble plus à une classe qu'à un tableau. – EJP