Foro sobre Java SE > Ayuda con mi método para "buscar"
El problema que tienes es que estás "mostrando" el resultado dentro del bucle.
JOptionPane.showMessageDialog(null, ingreso);
Lo que deberías hacer es recuperar la información que necesites en el bucle, y una vez terminado, mostrarla.
Sigue un test para listar los duplicados encontrados en un array.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class NewMain {
public static void main(String[] args) {
String[] nombres = new String[]{"nombre1", "nombre2", "nombre1", "nombre3", "nombre4", "nombre1"};
List<String> duplicados = getDuplicados(nombres);
System.out.println(duplicados);
String[] duplicadosArray = duplicados.toArray(new String[duplicados.size()]);
System.out.println(Arrays.toString(duplicadosArray));
}
private static List<String> getDuplicados(String[] nombres) {
List<String> todos = new ArrayList<>(Arrays.asList(nombres));
List<String> duplicados = new ArrayList<>();
for (String nombre : todos) {
if (Collections.frequency(todos, nombre) > 1) {
duplicados.add(nombre);
}
}
return duplicados;
}
}
Hola, ayúdenme porfavor, he creado un metodo para buscar un nombre en un array de objetos <<Niños>>, el metodo funciona bien, pero si el nombre se repite, solo muestra el primer elemento, cuando deberia mostrar todos los elementos con ese nombre, sospecho que estoy formulando mal el ciclo "for" , podrian ayudarme? pongo aki el metodo;
public void buscar(){
String ingreso;
boolean val= false;
ingreso = JOptionPane.showInputDialog(null, "Digite el nombre del niño");
if(ingreso!=null && !ingreso.equals("")){
if(numElemento!=0){
for(int i=0; i<numElemento; i++){
if(niños[i].getNombre().equals(ingreso)){
ingreso="";
val = true;
if (val==true){
ingreso+=+ "Nombre: "+niños[i].getNombre()+"\n"
+ "Edad: "+niños[i].getEdad()+"\n";
JOptionPane.showMessageDialog(null, ingreso);
}
else{
ingreso="No Existe el Usuario";
JOptionPane.showMessageDialog(null, ingreso);
}
}}}}}}
Espero su ayuda, y de antemano gracias :)