Foros del Web » Programación para mayores de 30 ;) » Java »

Busqueda en un ArrayList

Estas en el tema de Busqueda en un ArrayList en el foro de Java en Foros del Web. Necesito una ayuda con un método, se trata del método llamado inserta para añadir al atributo lista un equipo cuyo nombre se pasa como parámetro. ...
  #1 (permalink)  
Antiguo 09/01/2015, 13:16
 
Fecha de Ingreso: noviembre-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Pregunta Busqueda en un ArrayList

Necesito una ayuda con un método, se trata del método llamado inserta para añadir al atributo lista un equipo cuyo nombre se pasa como parámetro. El nuevo equipo se añadirá siempre que no estuviera ya contenido en lista. El método retornará true si el equipo se ha añadido, y false si ya estaba contenido en lista.

Este metodo se debe añadir al siguiente codigo, alguien sabe como hacerlo??





Código Java:
Ver original
  1. public class MiClase{
  2.      private ArrayList<String> lista = new ArrayList();
  3.  
  4.      public MiClase(EquiposDeportivos e)
  5.       {
  6.                for(int i = 0; i <= e.values.length; i++)
  7.                         lista.add(e.values[i].toString());
  8.        }
  9. }
  #2 (permalink)  
Antiguo 09/01/2015, 14:40
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Busqueda en un ArrayList

Tienes alguna idea de Java o quieres que alguien lo desarrolle por tí?
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 09/01/2015, 15:57
 
Fecha de Ingreso: noviembre-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Respuesta: Busqueda en un ArrayList

Estoy aprendiendo java y los ArrayList aun no los manejo bieen, de todas formas no queria que nadie me hiciese el ejercicio sino que me den una idea general, estilo a un pseudocodigo. De todas formas perdon por las molestias.
  #4 (permalink)  
Antiguo 10/01/2015, 05:40
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Busqueda en un ArrayList

Puede ser algo asi??

Código Java:
Ver original
  1. public boolean inserta(String nombre)
  2.     {
  3.         for (int i=0; i<=e.lenght; i++)
  4.         {
  5.          if(e.nombre[i]==nombre)
  6.          {
  7.              return false
  8.             }
  9.          else
  10.          {
  11.              lista.add(e.nombre[i]);
  12.              return true;
  13.             }
  14.         }
  15.     }
  #5 (permalink)  
Antiguo 10/01/2015, 09:16
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Busqueda en un ArrayList

Buenas,

Una forma de hacerlo.

Código Java:
Ver original
  1. public boolean inserta(String nombre) {
  2.        //Recorro todos los elementos de la lista
  3.        for (final String elemento : lista) {
  4.            //Si ya existe retorno salto
  5.            if (elemento.equals(nombre)) {
  6.                  return false;
  7.            }
  8.        }
  9.  
  10.        //Si he llegado hasta aqui es que no existe en la lista, asi que añadimos
  11.        lista.add(nombre);
  12.        return true;
  13.     }

@Scuvi96, unos apuntes sobre tu codigo:
-Las cadenas se comparan con equals.
-Estas tratando el arraylist como un array.
-Solo compruebas el primer elemento de la lista y ya retornas.

En cualquier caso te animo a que sigas aportando


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #6 (permalink)  
Antiguo 10/01/2015, 18:45
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Busqueda en un ArrayList

Cita:
Iniciado por Profesor_Falken Ver Mensaje

-Estas tratando el arraylist como un array.
-Solo compruebas el primer elemento de la lista y ya retornas.
Ya he tenido problemas con ello, entiendo que la forma que tu propones es mejor, pero a mi me mandan hacerlo con un bucle for y siempre me confundo. Ya he revisado mi codigo pero sigo sin saber si esta correcto.

En cuanto a lo de tratar a un arrayList como un array, el error estaba en el lista.add no? porque e es un array de la clase EquiposDeportivos

Graciaaas

Código Java:
Ver original
  1. public boolean inserta(String nombre)
  2.     {
  3.         for (int i=0; i<=e.length; i++)
  4.         {
  5.          if(e[i].Nombre.equals(nombre))
  6.          {
  7.              return false;
  8.             }
  9.         }
  10.         lista.add(nombre);
  11.         return true;
  12.     }
  #7 (permalink)  
Antiguo 11/01/2015, 02:50
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Busqueda en un ArrayList

Buenas,

Pero entonces eres tú el que has puesto la duda? Porqué utilizas varias cuentas diferentes en el foro???

Lo que yo te he puesto es también un for, porqué no te sirve?

Lo más parecido a lo que has puesto tú es lo siguiente:

Código Java:
Ver original
  1. public boolean inserta(String nombre)
  2.     {
  3.         for (int i=0; i<=lista.size(); i++)
  4.         {
  5.          if(lista.get(j).equals(nombre)) {
  6.              return false;
  7.             }
  8.         }
  9.         lista.add(nombre);
  10.         return true;
  11.     }

Ten en cuenta que la variable e solo existe en el ámbito del constructor, por lo que no se puede utilizar desde otros métodos.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #8 (permalink)  
Antiguo 11/01/2015, 07:18
 
Fecha de Ingreso: octubre-2014
Mensajes: 46
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Busqueda en un ArrayList

Yo no soy el que ha puesto la duda, pero tengo que hacer el mismo ejercicio

Gracias

Etiquetas: arraylist, busqueda, clase
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:45.