[JAVA] Valeurs verticales en horizontales

Fermé
mumu - 16 sept. 2008 à 14:10
 MaxouMax - 16 sept. 2008 à 21:27
Bonjour,
Je fais un tableau de valeur avec une arraylist, dont voici une partie du code:


while (true)
{ // Lit une ligne de fichier_test.obj
String ligne = tampon.readLine();
// Vérifie la fin de fichier
if (ligne == null)
break;

String [] str=ligne.split(";");
mat.add(new double[]{Long.parseLong(str[0]),Long.parseLong(str[1]),Long.parseLong(str[2])});

for(int i=0;i<mat.size();i++)
{
double[] Longa = mat.get(i);
System.out.println(Longa[0]+","+Longa[1]+","+Longa[2]);
}

} // Fin du while

J'aimerai ques les valeurs mis en horizontales: (Longa[0]+","+Longa[1]+","+Longa[2]); soit en verticale dans un nouveau tableau.

merci d'avance
A voir également:

2 réponses

Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
16 sept. 2008 à 21:13
Hello,
Ce que tu as, c'est une liste de tableau unidimensionnels. Ca n'a pas beaucoup de sens de parler d'orientation "verticale" ou "horizontale".
Le mieux pour toi c'est d'utiliser un double[] pour pouvoir placer tes données où tu le souhaites en spécifiant uniquement les indices, tu t'embêteras carrément moins, car en jouant avec les indices tu pourras utiliser toutes tes données rapidement, tu économiseras de l'espace mémoire en n'utilisant qu'une seule matrice...

Cordialement
1
Hello,

Pour commencer je dirai que faire un while(true) n'est vraiment pas conseillé, sauf si on est obligé, mais toi c'est pas ton cas.
et y a des trucs dans ton code qui sont pas bien pour la relecture.
Donc laisse moi te proposer ça. (je l'ai fais dans un fichier texte sans compile donc il est possible qu'il y ait des erreurs...)

Boolean bBreak = false;
do
{
// Lit une ligne de fichier_test.obj
String sLigne = tampon.readLine();

bBreak = (sLigne == null);
if(!bBreak)
{
String [] asCsvContent = sLigne.split(";");
//Ca passe ça un long dans un tableau déclaré en double ?
double[] adDoubleInCsv = new double[asCsvContent.length];
StringBuilder sbToDisplay = new StringBuilder();
double[] adNewArray = new double[asCsvContent.length];
for(int i = 0; i < asCsvContent.length; i++)
{
adDoubleInCsv[i] = Long.parseLong(asCsvContent[i]);
sbToDisplay.append(adDoubleInCsv[i]);
sbToDisplay.append(", ");
//Ensuite si j'ai bien compris ta question,
//il me semble que ce que tu veux c'est que tes Long deviennent
//les index d'un nouveau tableau. Seulement, si je me rappel bien,
//Il me semble pas que autre chose que les integer soit autorisés en
//index de tableau, il faut donc que tu commence par les caster en int
//Alors je vais faire ça à l'ancienne mais check si y a pas une
//méthode dans un objet bien natif qui fait pas ça mieux que moi :
int iMyOldLong = (int) adDoubleInCsv[i];

//Je sais pas ce que tu veux mettre dans ton tableau...
adNewArray[iMyOldLong] = adDoubleInCsv[i];

}
System.out.println(sbToDisplay.toString());

}
else
{
System.err.println("On a atteint la fin du fichier.");
}

}while(!bBreak)
System.err.println("On a atteint la fin du main.");
0