Modificar Eliminar y Mostrar datos de un Vector en java


Para este ultimo articulo de vectores implementando un temporal para realizar intercambio, mostrare tres funciones mas aplicadas a dichos vectores en lenguaje java. Si no cuenta con el IDE JCreator no hay problema, solo creen una clase con el nombre que lleva el proyecto, dado el caso que su IDE preferido sea Netbeans o Eclipse y copian el código que de igual manera les va a funcionar. 

   

El vector que utilizaremos sera el mismo que en una publicación anterior había presentado. Lo pueden ver :Aquí. Lo primero que aremos es la función para modificar los datos para el vector de tipo entero (int).


Primero validamos que el vector cuanta con datos.

if (num.length >= 1) 

Si hay datos con una variable capturo cada uno de los elementos que posee el vector
  1.  Print= "Numero de Registros " + num.length + "\n\n";
  2.                             for (i = 0; i <= (num.length - 1); i++) {
  3.                                 Print = Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
  4.                             }
Para realizar este procedimiento necesitamos pedir la posición de se desea modificar.
Este dato lo capturamos en una variable.
  
  Valor = JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Modificar. " + Print, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);

Luego pedimos el nuevo dato a insertar en la posición ya capturada.


 Valor = JOptionPane.showInputDialog(null, "Nuevo Valor de la Posición: " + n, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);

Ahora reemplazamos el dato en la posición dada. 

  1.  num[n - 1] = Integer.parseInt(Valor);
  2.                                Print = "Numero de Registros " + num.length + "\n\n";
  3.                                 for (i = 0; i <= (num.length - 1); i++) {
  4.                                     Print= Print + "Posición " + (i + 1) + ": " + num[i] + "\n";


Código completo.
  1. if (num.length >= 1) {                           
  2.                             Print= "Numero de Registros " + num.length + "\n\n";
  3.                             for (i = 0; i <= (num.length - 1); i++) {
  4.                                 Print = Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
  5.                             }
  6.                             Valor = JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Modificar. " + Print, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
  7.                             if (Integer.parseInt(Valor) <= num.length) {
  8.                                 n = Integer.parseInt(Valor);
  9.                                 Valor = JOptionPane.showInputDialog(null, "Nuevo Valor de la Posición: " + n, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
  10.                                 num[n - 1] = Integer.parseInt(Valor);
  11.                                Print = "Numero de Registros " + num.length + "\n\n";
  12.                                 for (i = 0; i <= (num.length - 1); i++) {
  13.                                     Print= Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
  14.                                 }
  15.                                 JOptionPane.showMessageDialog(null, "Registro Modificado Exitosamente! " +Print, "Moficicar valor del vector", JOptionPane.INFORMATION_MESSAGE);
  16.                             } else {
  17.                                 JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe en este vector!.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
  18.                             }
  19.                         } else {
  20.                             JOptionPane.showMessageDialog(null, "No hay Registros para Modificar.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
  21.                         }
 Bien  este es todo el proceso para realizar una correcta modificación de un vector. Este proceso se realiza en un solo vector. No hay necesidad de utilizar el temporal para real izarlo.

Ahora implementaremos el método para eliminar. Es algo similar al anterior pero acá si ya necesitamos la ayuda del vector temporal.


Nuevamente validamos que el vector contenga datos.

  if (num.length > 1)

Si tiene por lo menos un valor lo capturamos en una variable. Esto solo lo ago para darle mas estilo al momento de la ejecución.
Entonces guardo la cantidad de datos y también dentro de un ciclo  capturo los valores para luego visualizarlos.
                            Print= "Numero de Registros " + num.length + "\n\n";
                           for (i = 0; i <= (num.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + " : " + num[i] + "\n";
                            }        
Nuevamente necesitamos pedir la posición que se desea eliminar. Aclaro que se puede también pedir directamente el dato que de va a eliminar. Pero como estamos utilizando la variable  Print esta nos ayudara a que sea mas amigable.

Luego de tener la posición que se desea eliminar, pasamos los datos del vector principal al vector temporal y eliminando el dato en la posición dada.

                          elemento1 = Integer.parseInt(Valor) - 1;
                            if (elemento1 <= num.length - 1) {
                                for (i = elemento1; i <= (num.length - 1); i++) {
                                    if (i != num.length - 1) {
                                        num_tem[i] = num[i + 1];
                                    }
                                }
                                num= new int[num_tem.length - 1];
                                Print = "Numero de Registros " + num.length + "\n\n";
                                for (i = 0; i <= (num.length - 1); i++) {
                                    num[i] = num_tem[i];
                                    Print = Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
                                }
                                num_tem = new int[num.length];
                                for (i = 0; i <= (num.length - 1); i++) {
                                   num_tem[i] = num[i];
                                } 


Acá de nuevo el código completo.
                            if (num.length > 1) {                            
                            Print= "Numero de Registros " + num.length + "\n\n";
                            for (i = 0; i <= (num.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + " : " + num[i] + "\n";
                            }                           
                            Valor = JOptionPane.showInputDialog(null, "Cual es la posición del Registro que                          desea Eliminar. " + Print, "Eliminar datos vel vector",                                               JOptionPane.QUESTION_MESSAGE);
                            elemento1 = Integer.parseInt(Valor) - 1;
                            if (elemento1 <= num.length - 1) {
                                for (i = elemento1; i <= (num.length - 1); i++) {
                                    if (i != num.length - 1) {
                                        num_tem[i] = num[i + 1];
                                    }
                                }
                                num= new int[num_tem.length - 1];
                                Print = "Numero de Registros " + num.length + "\n\n";
                                for (i = 0; i <= (num.length - 1); i++) {
                                    num[i] = num_tem[i];
                                    Print = Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
                                }
                                num_tem = new int[num.length];
                                for (i = 0; i <= (num.length - 1); i++) {
                                   num_tem[i] = num[i];
                                }
                                JOptionPane.showMessageDialog(null, "valor Eliminado Exitosamente! " +                                   Print, "Eliminar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                            } else {
                                JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe                                 en este arreglo.", "Eliminar valor del vector",                            JOptionPane.ERROR_MESSAGE);
                            }
                        } else if (num.length == 1) {
                            num = new int[0];
                            num_tem = new int[0];
                            JOptionPane.showMessageDialog(null, "El Arreglo se encuentra Vacio. ",                                 "Eliminar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros para Eliminar.", "Eliminar valor del vector", JOptionPane.ERROR_MESSAGE);
                        }




Y por ultimo mostraremos los datos. Lo que ago es pasar los datos del vector a una variable y luego la muestro en un JOptionPane concatenada.


 if (num.length >= 1) {
                            for (i = 0; i <= (num.length - 1); i++) {
                                for (n = 0; n <= (num.length - 2); n++) {                                    
                                    elemento1 = num[n + 1];
                                    elemento2 = num[n];
                                    if (elemento1 < elemento2) {
                                        num[n] = elemento1;
                                        num[n + 1] = elemento2;
                                    }
                                }
                            }
                            Print = "Numero de Registros " + num.length + "\n\n";
                            for (i = 0; i <= (num.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + ": " + num[i] + "\n";
                            }
                            JOptionPane.showMessageDialog(null, " " + Print, "Mostrar datos del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros en El arreglo", "Mostrar datos del vector", JOptionPane.ERROR_MESSAGE);
                        }


Lo anterior fue para vectores de tipo entero (int). Al final  de este articulo encontraran la descarga del proyecto con los vectores de tipo int, doubley String.
Continuemos con la función modificar un vector de tipo double. Es igual al anterior, aunque algunas variable hay que convertirlas de una manera diferente.

Función que modifica un vector de tipo double.


if (dato.length >= 1) {                           
                            Print= "Numero de Registros " + dato.length + "\n\n";
                            for (i = 0; i <= (dato.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + ": " + dato[i] + "\n";
                            }
                            Valor = JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Modificar. " + Print, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
                            if (Integer.parseInt(Valor) <= dato.length) {
                                n = Integer.parseInt(Valor);
                                Valor = JOptionPane.showInputDialog(null, "Nuevo Valor de la Posición: " + n, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
                                dato[n - 1] = Integer.parseInt(Valor);
                               Print = "Numero de Registros " + dato.length + "\n\n";
                                for (i = 0; i <= (dato.length - 1); i++) {
                                    Print= Print + "Posición " + (i + 1) + ": " + dato[i] + "\n";
                                }
                                JOptionPane.showMessageDialog(null, "Registro Modificado Exitosamente! " +Print, "Moficicar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                            } else {
                                JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe en este vector!.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
                            }
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros para Modificar.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
                        }

   


Función de Elimina datos de un vector de tipo double.


if (dato.length > 1) {                            
                            Print= "Numero de Registros " + dato.length + "\n\n";
                            for (i = 0; i <= (dato.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + " : " + dato[i] + "\n";}                                        
                           Valor= JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Eliminar. " + Print, "Eliminar datos vel vector", JOptionPane.QUESTION_MESSAGE);
                           elemen1 = Double.parseDouble (Valor)-1;
                            int x;
                            x=(int)elemen1;                           
                            if (elemen1 <= dato.length - 1) {
                                for (i = x; i <= (dato.length - 1); i++) {
                                    if (i != dato.length - 1) {
                                        dato_t[i] = dato[i + 1];}}                              
                                dato= new double [dato_t.length - 1];
                                Print = "Numero de Registros " + dato.length + "\n\n";
                                for (i = 0; i <= (dato.length - 1); i++) {
                                    dato[i] = dato_t[i];
                                    Print = Print + "Posición " + (i + 1) + ": " + dato[i] + "\n";
                                }
                                dato_t = new double [dato.length];
                                for (i = 0; i <= (dato.length - 1); i++) {
                                   dato_t[i] = dato[i];}                                
                                JOptionPane.showMessageDialog(null, "valor Eliminado Exitosamente! " + Print, "Eliminar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                            } else {
                                JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe en este arreglo.", "Eliminar valor del vector", JOptionPane.ERROR_MESSAGE);
                            }
                        } else if (dato.length == 1) {
                            dato = new double [0];
                            dato_t = new double [0];
                            JOptionPane.showMessageDialog(null, "El Arreglo se encuentra Vacio. ", "Eliminar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros para Eliminar.", "Eliminar valor del vector", JOptionPane.ERROR_MESSAGE);

                        }



Y la función que muestra el vector double.


if (dato.length >= 1) {
                            for (i = 0; i <= (dato.length - 1); i++) {
                                for (n = 0; n <= (dato.length - 2); n++) {                                    
                                    elemen1 = dato[n + 1];
                                    elemen2 = dato[n];
                                    if (elemen1 < elemen2) {
                                        dato[n] = elemen1;
                                        dato[n + 1] = elemen2;
                                    }
                                }
                            }
                            Print = "Numero de Registros " + dato.length + "\n\n";
                            for (i = 0; i <= (dato.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + ": " + dato[i] + "\n";
                            }
                            JOptionPane.showMessageDialog(null, " " + Print, "Mostrar datos del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros en El arreglo", "Mostrar datos del vector", JOptionPane.ERROR_MESSAGE);

                        }


Y como lo prometido es deuda, termino con el vector de tipo String.



Función Modificar.

if (texto.length >= 1) {                           
                            Print= "Numero de Registros " + texto.length + "\n\n";
                            for (i = 0; i <= (texto.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + ": " + texto[i] + "\n";
                            }
                            Valor = JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Modificar. " + Print, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
                            if (Integer.parseInt(Valor) <= texto.length) {
                                n = Integer.parseInt(Valor);
                                texto[n - 1] =  JOptionPane.showInputDialog(null,"Nuevo dato de la Posición: " + n, "Modificar valor del vector", JOptionPane.QUESTION_MESSAGE);
                                Print = "Numero de Registros " + texto.length + "\n\n";
                                for (i = 0; i <= (texto.length - 1); i++) {
                                    Print= Print + "Posición " + (i + 1) + ": " + texto[i] + "\n";
                                }
                                JOptionPane.showMessageDialog(null, "Registro Modificado Exitosamente! " +Print, "Moficicar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                            } else {
                                JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe en este vector!.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
                            }
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros para Modificar.", "Modificar valor del vector", JOptionPane.ERROR_MESSAGE);
                        }
   

Función Eliminar



if (texto.length > 1) {                            
                            Print= "Numero de Registros " + texto.length + "\n\n";
                            for (i = 0; i <= (texto.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + " : " + texto[i] + "\n";}                                        
                           Valor= JOptionPane.showInputDialog(null, "Cual es la posición del Registro que desea Eliminar. " + Print, "Eliminar datos vel vector", JOptionPane.QUESTION_MESSAGE);
                           elemen1 =Integer.parseInt (Valor)-1;                                             
                           if (elemen1 <= texto.length - 1) {
                                for (i =elemen1; i <= (texto.length - 1); i++) {
                                    if (i != texto.length - 1) {
                                        texto_t[i] = texto[i + 1];}}                              
                                texto= new String[texto_t.length - 1];
                                Print = "Numero de Registros " + texto.length + "\n\n";
                                for (i = 0; i <= (texto.length - 1); i++) {
                                    texto[i] = texto_t[i];
                                    Print = Print + "Posición " + (i + 1) + ": " + texto[i] + "\n";
                                }
                                texto_t = new String [texto.length];
                                for (i = 0; i <= (texto.length - 1); i++) {
                                   texto_t[i] = texto[i];}                                
                                JOptionPane.showMessageDialog(null, "dato Eliminado Exitosamente! " + Print, "Eliminar dato del vector", JOptionPane.INFORMATION_MESSAGE);
                            } else {
                                JOptionPane.showMessageDialog(null, "La Posición Seleccionada No existe en este arreglo.", "Eliminar valor del vector", JOptionPane.ERROR_MESSAGE);
                            }
                        } else if (texto.length == 1) {
                            texto = new String [0];
                            texto_t= new String [0];
                            JOptionPane.showMessageDialog(null, "El Arreglo se encuentra Vacio. ", "Eliminar valor del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros para Eliminar.", "Eliminar valor del vector", JOptionPane.ERROR_MESSAGE);
                        }


Y la función para visualizar los datos que contiene el vector.


String elem1,elem2;
      if (texto.length >= 1) {
                            for (i = 0; i <= (texto.length - 1); i++) {
                                for (n = 0; n <= (texto.length - 2); n++) {                                    
                                    elem1 = texto[n + 1];
                                    elem2 = texto[n];
                                    if (elem1.length ()< elem2.length ()) {
                                        texto[n] = elem1;
                                        texto[n + 1] = elem2;
                                    }
                                }
                            }
                            Print = "Numero de Registros " + texto.length + "\n\n";
                            for (i = 0; i <= (texto.length - 1); i++) {
                                Print = Print + "Posición " + (i + 1) + ": " + texto[i] + "\n";
                            }
                            JOptionPane.showMessageDialog(null, " " + Print, "Mostrar datos del vector", JOptionPane.INFORMATION_MESSAGE);
                        } else {
                            JOptionPane.showMessageDialog(null, "No hay Registros en El arreglo", "Mostrar datos del vector", JOptionPane.ERROR_MESSAGE);
                        }


Para poder ejecutarlo solo descarguen el proyecto, y lo descomprimen. Dentro del paquete  se encuentran dos clase LeerVectores y Vectores_probar. En la clase Vectores_probar se encuentra el main con un menú de opciones las cuales les va a permitir elegir que vector desean ejecutar.

Al elegir una de estas opciones les abrirá el menú del vector que van a ejecutar.  


Descarga del proyecto Aqui


3 comentarios:

  1. Gracias hermano, me salvaste la vida.

    ResponderEliminar
  2. Que sucede cuando el vector es de tipo objeto?

    ResponderEliminar
  3. como puedo hacer para que el vector sea de tamoño 200 y quiero modificar y eliminar un valor en especifico??

    ResponderEliminar