Uno de los beneficios de codificación más limpios de las Colecciones modernas es la capacidad de usar la construcción para cada uno. Tengo debajo un método de impresión de tabla general simple, seguido de un método de carga de prueba. Mientras esto funcione, algún tipo de para cada uno sería mucho más limpio. ¿Algunas ideas?¿Hay alguna manera de usar una construcción para cada una para una tabla de guayaba?
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);
}
foreach loops solo funcionan con arreglos y cosas que implementan 'Iterable'. La 'Tabla' de Guava no es ninguna de esas, por lo que estás atascado con tu ciclo indexado. – skaffman
¡Ah! Eso tiene sentido, pero es un poco decepcionante. ¡Gracias! – MantaMan
La construcción anterior, y otras similares con claves de fila y columna me obligaron a buscar entradas nulas en una tabla compleja en la que las cosas se agregaban y eliminaban. El siguiente enfoque funciona mucho mejor: Colección coral = table.values (); para (Coral coral: corales) {System.out.println (coral); } –
MantaMan