Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

524
Visualizações
Cómo eliminar un objeto de una lista vinculada en java

Tengo una lista enlazada llamada seatList compuesta por objetos Seat configurados así...

 public class Seat { int row, col; char type; Seat(int row, int col, char type){ this.row = row; this.col = col; this.type = type; } String printSeat(){ return "(" + row + ", " + col + ", " + type + ")"; } }

Cuando trato de eliminar los asientos con las mismas propiedades creando un nuevo objeto de asiento y almacenándolo en una lista vinculada separada llamada colecciones, no se eliminan de la lista vinculada.

 LinkedList<Seat> collection = new LinkedList(); for (int q : indexToRemove){ collection.add(new Seat(seatList.get(q).row, seatList.get(q).col, seatList.get(q).type)); } for (Seat s : collection){ if (seatList.contains(s)){ println("true"); seatList.remove(s); } } if (orders.get(indexes.get(index)).seatList.isEmpty()){ orders.remove((int)indexes.get(index)); }

Razón por la que es diferente: la pregunta vinculada habla de alterar la lista que está iterando según lo establecido por csm_dev

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Para eliminar un objeto de la lista, debe usar Iterator y llamar a remove() en el iterador, un ejemplo:

 Iterator<Seat> collection = seatList.iterator(); while (collection.hasNext()) { Seat element = collection.next(); //some condition on your object "element" collection.remove(); }

y no se olvide de definir la lógica de hashCode/equals methodes para comparar sus objetos Seat

over 4 years ago · Santiago Trujillo Relatório

0

Tienes que usar Iterator para esto :

 Scanner scr= new Scanner(System.in); System.out.print("Enter Seat Row number to delete: "); int row = scr.nextInt(); for (Iterator<Seat> iter = list.iterator(); iter.hasNext();) { Seat data = iter.next(); if (data.getRow() == row) { iter.remove(); } }

Tienes que agregar setters y getters en tu clase estado.

over 4 years ago · Santiago Trujillo Relatório

0

LinkedList y otras implementaciones de listas usan el método equals() para verificar si el objeto está presente en la lista. Dado que no tiene implementado el método equals (), Java utilizará la implementación proporcionada por la clase Object, que es muy cruda y no funciona para usted.

Debe implementar el método equals() y darle a jvm una forma de ver si 2 objetos del asiento son iguales.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda