Buscar objetos en un ArrayList
Buen día, el presente es para preguntarles cual es forma mas recomendada para hacer lo anterior, tengo una clase Persona, y creo un ArrayList con 20 objetos, los cuales tienen como los siguientes atributos, nombre, apellido, edad, y ahora lo que quiero es crear un método
el cual recibe un String y regresa un String con todas las personas que coinciden con el parámetro de entrada,
antes de venir aquí encontré varios métodos los cuales aparentemente funcionan, pero me gustaría saber cual es la manera mas optima.
Gracias
- Inicie sesión o regístrese para enviar comentarios
Tu método debería de regresar
Tu método debería de regresar una lista de personas no? Si regresas un String con las personas que coinciden, suponiendo que fueran 3 y el parámetro fuera "Paco" tu salida sería:
o_O
Para este caso específico ( buscar en una lista de 20 elementos ) una búsqueda lineal basta
Problemita
Tengo el siguiente problemita, estoy tratando de regresar a todas las personas mayores de edad con lo cual implemento el siguiente metodo
Pero nomas me regresa la primera persona mayor de edad :/
Codigo completo
Muestro el codigo para ver en que puedo estar mal
Clase Persona
Clase prueba
Clase main
No hagas return
Un detalle es que estas haciendo el return, en ese punto apenas encontraste al primero y le dices que se salga de la funcion.
Puedes hacer varias cosas:
Primero quita el return
1. crea un arreglo o un stringbuffer o algo donde puedas guardar los valores que requieres
2. al salir del ciclo verifica el count del objeto que llenaste
si el count es mayor a cero regresa lo que tengas que regresar ( string, el arreglo o lo que necesites.)
si el count es igual a cero regresa tu cadena de que no se encontro nada. (aunque creo que eso no deberia ir ahi si no fuera de la funcion validando lo que regresa pero bueeeee.)
Modificaciones
Que tal mi estimado pedroza, hice las modificaciones pero sigue en lo mismo :/
Esta raro
Pues con tu codigo funciona correctamente, si regresa los mayores de edad. El unico cambio que hice fue comentar la entrada de los apellidos y colonias. Pero con la modificacion en el metodo de personas mayores si los regresa.
Ese si
Ese si pero el otro no, el buscarPaterno, pero ya lo corregi mil gracias por tomarse su tiempo :)
¿y cual fue la solucion?
¿¿¿¿¿¿a final de cuentas ??????
Me imagino
Me imagino que utilizó la misma información que le habías proporcionado para el método anterior; ya que al encontrar el primer dato
en la lista el ciclo se rompe con el return por lo que si existen demás registros en la lista lo ignorará.
Entonces me imagino que usó lo mismo para el método de búsqueda
Así quedo :)
Para concatenar un String en
Para concatenar un String en tiempo de ejecución es mejor utilizar StringBuffer que "+", ya que "+" esta diseñado para actuar en tiempo de compilación
Gracias
Muchas gracias mi estimado lo tomare en cuenta :)
Si estas en Java 8
Puedes usar un stream:
En chino...
Muchas gracias, por ahora ese código se ve en chino para mi xD, pero seguiré avanzando y espero llegar a comprender dicha expresión.
WAT?
El
para concatenar Strings se compila a usar un StringBuilder, entonces es lo mismo. No veo cómo podría "actuar en tiempo de compilación".
Re: en chino...
No es chino. ¡Es Java 8!
Por cierto, ▼ este libro sí que está en chino para entenderle. :-P
~~~
Se solía evitar usar el
Se solía evitar usar el operador + para concatenar Strings porque antes de Java 5 se creaba una instancia nueva. Ahora tiene el mismo desempeño que el StringBuilder