PDA

View Full Version : [Fanta-Java] Sintassi questa sconosciuta, aiuto!


cdere
07-05-2010, 21:50
Salve a tutti!
Riempio una matrice in questo modo:
data[1][0] = "Sole"; data[1][1] = "caldo"; data[1][2] = "Alta"; data[1][3] = "Forte"; data[1][4] = "No";

solo che non mi piace tanto, vorrei fare una classe Tupla, e fare un'array data di n Tuple.

vorrei fare questo:
data[1] = new Tuple( {"Sole","Caldo","Alta","Forte","No"} );

perchè il costruttore di Tuple l'ho messo con parametro String[] ma non sembra possibile a livello sintattico, qualche escamotage?

Grazie mille

tuccio`
07-05-2010, 22:05
Salve a tutti!
Riempio una matrice in questo modo:
data[1][0] = "Sole"; data[1][1] = "caldo"; data[1][2] = "Alta"; data[1][3] = "Forte"; data[1][4] = "No";

solo che non mi piace tanto, vorrei fare una classe Tupla, e fare un'array data di n Tuple.

vorrei fare questo:
data[1] = new Tuple( {"Sole","Caldo","Alta","Forte","No"} );

perchè il costruttore di Tuple l'ho messo con parametro String[] ma non sembra possibile a livello sintattico, qualche escamotage?

Grazie milleesattamente cosa ti impedisce di fare così:


String[][] data = {
new String[] { "Sole", "Caldo", "Alta", "Forte", "No" },
new String[] { .... }
};

lock cmpxchg8b %ebx
07-05-2010, 22:18
Potresti anche usare una funzione (in questo caso un costruttore) che accetta un numero variabile di argomenti.

class Tuple
{
public Tuple(String... args)
{
//fai qualcosa con args, è un array di stringhe
}
}

new Tuple("A", "B", "C") //args sarà un array con tre stringhe
new Tuple("A") //args sarà un array con una singola stringa
new Tuple() //args sarà un array vuoto

Etc.

wingman87
07-05-2010, 22:18
Oppure se proprio vuoi usare la classe Tupla puoi dichiarare il costruttore in questo modo:
Tupla(String...args){
//codice
}
Ed usarlo così:
data[1] = new Tupla("Sole","Caldo","Alta","Forte","No");

EDIT: mi hanno preceduto

nuovoUtente86
07-05-2010, 22:19
scusa fare cosi

String [] lista = {"Sole","Caldo","Alta","Forte","No"};
data[1] = new Tuple(lista);

oppure utilizzando i varargs definisci il costruttore di Tuple cosi

Tuple (String ... lista) e passi un numero variabile di Stringhe.

PGI-Bis
07-05-2010, 22:37
vorrei fare questo:
data[1] = new Tuple( {"Sole","Caldo","Alta","Forte","No"} );

Tuple[] data = new Tuple[1];
data[1] = new Tuple( new String[] { "Sole", "Caldo", "Alta", "Forte", "Now"} );

fero86
08-05-2010, 00:13
Tuple[] data = new Tuple[1];
data[1] = new Tuple( new String[] { "Sole", "Caldo", "Alta", "Forte", "Now"} ); ArrayIndexOutOfBoundsException :D

PGI-Bis
08-05-2010, 00:18
è il pensiero che conta.

cdere
08-05-2010, 12:41
grazie mille ragazzi siete mitici!!!

Ho risolto con String... nel costruttore, ma andava bene anche
data[1] = new Tuple( new String[] { "Sole", "Caldo", "Alta", "Forte", "Now"} );

graziee

cdere
08-05-2010, 15:19
ora però viene fuori il problema per il quale ho voluto "trasformare" quella matrice in un array.. ordinarla tramite Arrays.sort, a chi fosse curioso/volesse aiutare un anima candida:

http://www.hwupgrade.it/forum/showthread.php?t=2189361

:D