Cómo convertir una Lista en un Mapa usando Lista como clave en Java

Leí una tabla de Excel que contiene cuatro columnas y creo una Lista. Ahora, me gustaría usar las primeras tres columnas como clave y usar la última columna como valor. He visto preguntas similares, pero en todas esas preguntas, String o Integer se usan como clave.

public class initial {
private int from;
private int to;
private int via;
private int cost;
//constructor
//set and get methods
//hashCode and equals methods
}

public class myTuple {
private int from;
private int to;
private int via;
}

 //main function
 //get the Excel Table as a list
ArrayList<initial> myList = new ArrayList<initial>();

for(int i= mySheet.getFirstRowNum()+1 ; i<= mySheet.getLastRowNum(); i++) {
   initial e = new initial();
   Row ro = mySheet.getRow(i);
   for(int j = ro.getFirstCellNum(); j <= ro.getLastCellNum();  j++) {
    Cell ce = ro.getCell(j);
    switch(j) {
    case 0:
      e.setFrom((int) ce.getNumericCellValue());
          break;
              .....

    case 3:
      e.setCost((int) ce.getNumericCellValue());
      break;    
    }
}
myList.add(e);
}

//Create map
Map<myTuple, Integer> myMap = new HashMap<>();

No sé cómo proceder después de este punto. Creo que debería usar algo como;

Map<myTuple, Integer> myMap= myList.stream().collectC(ollectors.toMap(myList:: , myList::));

Si alguien pudiera ayudarme, realmente lo agradecería.

Además, si cree que hay una forma más eficiente de realizar esto (por ejemplo, la forma en que leo mis datos y analizo en una lista, la forma en que convierto la lista en un mapa), hágamelo saber. Aunque no está en el contenido de esta pregunta, si hay una mejor manera de leer una tabla multidimensional y analizarla en una Lista como lo hago yo, me encantaría escuchar eso también. En el futuro, tendré tablas más grandes con más columnas. Por lo tanto, no estoy muy seguro de si ir a través de cada columna con una declaración de cambio es el camino a seguir.

Respuesta 1

Puede crear el mapa mientras realiza un bucle.

Tuple key = new Tuple(row.getNum(0), row.getNum(1), row.getNum(2));
List<Integer> value = new ArrayList<>();
for (int cell = 3; cell < row.getCount(); cell++) {
    value.add(row.getNum(cell));
}
Map.put(key,value);
Respuesta: 2

Mi video se reproduce bien, pero necesito que aparezcan algunos elementos delante de él. Estoy usando 'PApplet' dentro de Eclipse (una tarea universitaria requiere que usemos Processing IDE pero necesito algo de Java ...

Quiero obtener el valor de startTime y endTime de java gui a la base de datos. Clase ComputerSeats import javax.swing. *; import java.awt. *; import java.awt.event. *; import java.text.SimpleDateFormat; ...

Actualmente estoy trabajando en un juego de consola con un grupo de 3 personas, incluido yo mismo, que están creando el juego "Black Jack" para un proyecto escolar, pero tenemos un problema en el programa dentro de la clase de Java ...

paquete de tarea1; import java.applet.Applet; import java.awt.Graphics; Tarea pública La tarea 1A extiende Applet {pintura vacía pública (Gráficos g) {g.drawString ("CIS 35A Student Learning ...