Eclipse - DUDA - Eliminar un elemento de un arreglo

 
Vista:
sin imagen de perfil

DUDA - Eliminar un elemento de un arreglo

Publicado por anonymous (1 intervención) el 23/03/2020 08:07:13
Hola, soy algo inexperto en la programación, ¿alguien podría explicarme con una duda que tengo?
Estoy haciendo un programa que registre nombre y los guarde en un arreglo, utilizando funciones.
En la función de eliminar como logro que después de eliminar "x" nombre, el dato que esta después de el, tome el lugar del que se acaba de eliminar. En otra palabras recorre el arreglo
Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import java.util.Scanner;
public class Arreglo_2 {
	public static void main(String[] args) {
 
		Scanner entrada = new Scanner(System.in);
 
		String [] nombres;
		nombres = new String[5];
 
		//2) Index
		int [] index;
		index = new int[1];
		index[0]=0;
 
		int opcion =0;
 
		while (opcion != 5) {
			// MEnu
				System.out.println("Que deseas hacer?");
				System.out.println("1) Agregarn Nombre ");
				System.out.println("2) Buscar Nombre");
				System.out.println("3) Actualizar Nombre");
				System.out.println("4) Eliminar Nombre");
				System.out.println("5) Salir ");
				   opcion = entrada.nextInt();
 
 
				   switch(opcion) {
				   case 01://AGREGAR//
					   System.out.println("Dame el Nombre");
						String nom = entrada.next();
 
					if( Agregar(nombres,index,nom)==true) {
						System.out.println("Registro guardado ");
					}else {
						System.out.println("No hay espacio ");
					}
 
 
						break;
 
				   case 02://BUSCAR//
					   System.out.println("ingresa el Nombre que desas buscar");
						String BSQnom = entrada.next();
						if (BuscarEnNombres(nombres,BSQnom)==-1) {
							System.out.println("No se encontro ese Dato ");
						}else {
						System.out.println("El Nombre esta en la psocicon: " + BuscarEnNombres(nombres,BSQnom));
						}
				   	break;
 
				   case 03://ACTUALIZAR//
 
						break;
				   case 04://ELIMINAR//
					   System.out.println("Dame el nombre que deses eliminar");
						String eliminar = entrada.next();
						if (BuscarEnNombres(nombres,eliminar)==-1) {
							System.out.println("No se encontro ese nombre ");
						}else {
						System.out.println("Eliminaste: " + Eliminar(nombres,eliminar,index));
						}
						break;
 
				   default:
				   	System.out.println("no reconozco esa esos datos:");
				   	break;
				   }
				   }
		}
 
	public static boolean Agregar(String arr[], int [] i, String n) {
 
 
		if(i[0] < arr.length) {
 
 
		arr[i[0]] = n;
		i[0] = i[0]+1;
		return true;
		}else {
		//NO
 
 
		return false;
 
		}
}
 
	public static int BuscarEnNombres(String arr[],String datobusca) {
		int contador =0;
 
 
		while (contador <5) {
 
		if (datobusca.equals(arr[contador])) {
 
		return contador;
		}
		contador = contador +1;
		}
 
		return -1;
		}
 
 
	public static int Eliminar(String arr[],String num,int[]i) {
		int contador=0;
		while (contador <5) {
 
			if (num.equals(arr[contador])) {
				 arr[contador] = arr[i[0]]=null;
 
				 i[0] = i[0];
 
			}
			contador = contador -1;
			}
 
			return -1;
 
	}
 
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder