Uno dei più chiari vantaggi di codifica delle moderne collezioni è la possibilità di utilizzare la costruzione for-each. Ho sotto un semplice metodo di stampa generale delle tabelle, seguito da un metodo di caricamento di prova. Mentre questo funziona, un po 'per ciascuno sarebbe molto più pulito. Qualche idea?C'è un modo per usare una costruzione for-each per una tabella Guava?
public void printTable(Table table)
{
int numRows = table.rowKeySet().size();
int numCols = table.columnKeySet().size();
for (int i=0; i<numRows; i++)
{
for (int j=0; j<numCols; j++)
{
System.out.print(table.get(i,j) + " ");
}
System.out.println();
}
}
Table<Integer, Integer, Integer> table = HashBasedTable.create();
void makeTable()
{
for (int i=0; i<4; i++)
for (int j=0; j<6; j++)
table.put(i, j, i*j+2);
}
I cicli foreach funzionano solo con gli array e le cose che implementano 'Iterable'. Il 'Tavolo' di Guava non è nessuno di questi, quindi sei bloccato con il tuo ciclo indicizzato. – skaffman
Ah! Questo ha senso, ma è un po 'deludente. Grazie! – MantaMan
La suddetta costruzione e simili usando le chiavi di riga e di colonna mi hanno costretto a controllare le voci nulle in una tabella complessa in cui le cose sono state aggiunte e rimosse. Il seguente approccio funziona molto meglio: Collection coral = table.values (); per (corallo corallo: coralli) {System.out.println (corallo); } –
MantaMan