Los datos del ArrayList desaparecen
Publicado por Fran (13 intervenciones) el 28/04/2021 01:10:47
Buenas amig@s,
Estoy construyendo un programa. Desde el main class se accede a lo que yo he llamado un "Main Menu". Desde alli accedo a una clase "College" donde añado datos a un ArrayList. Mientras está en esa clase todo bien. El problema viene cuando vuelvo al "Main Menu" (donde en el futuro espero hacer otras cosas) y voy de nuevo a la clase "College" y los datos de la ArraList han desaparecido.
Alguien me podría decir que ocurre y como se podría arreglar?
Dejo aquí mi codigo:
Clase Main:
Clase College:
Gracias de antemano por cualquier posible pista.
Estoy construyendo un programa. Desde el main class se accede a lo que yo he llamado un "Main Menu". Desde alli accedo a una clase "College" donde añado datos a un ArrayList. Mientras está en esa clase todo bien. El problema viene cuando vuelvo al "Main Menu" (donde en el futuro espero hacer otras cosas) y voy de nuevo a la clase "College" y los datos de la ArraList han desaparecido.
Alguien me podría decir que ocurre y como se podría arreglar?
Dejo aquí mi codigo:
Clase Main:
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
package worldskillscompetitionapp6;
import java.util.Scanner;
public class WorldSkillsCompetitionApp6
{
public static void mainMenu()
{
Scanner sc = new Scanner(System.in);
String userChoice;
do
{
System.out.println("Menu:\n"
+ "1. College.\n"
+ "2. Exit.");
userChoice = sc.nextLine();
switch(userChoice)
{
case "1":
College college = new College();
college.collegeMenu();
break;
case "2":
System.out.println("See you in the next\n"
+ "WORLD SKILLS COMPETITION\n");
System.exit(0);
default:
System.out.println("Please, enter a number between 1 and 2\n");
}
}while(userChoice != "2");
}
public static void main(String[] args)
{
mainMenu();
}
}
Clase College:
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package worldskillscompetitionapp6;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class College
{
Scanner sc = new Scanner (System.in);
private String collegeName;
private String collegeID;
List <College> listOfColleges = new ArrayList<College>();
String userChoice;
public College()
{
}
public String getCollegeName() {
return collegeName;
}
public void setCollegeName(String collegeName) {
this.collegeName = collegeName;
}
public String getCollegeID() {
return collegeID;
}
public void setCollegeID(String collegeID) {
this.collegeID = collegeID;
}
public void collegeMenu()
{
do
{
System.out.println("\nCollege Menu:\n"
+ "1. List of Colleges\n"
+ "2. Add College\n"
+ "3. Delete College\n"
+ "4. Back to Main Menu");
userChoice = sc.nextLine();
switch(userChoice)
{
case "1":
Listing();
break;
case "2":
AddCollege();
break;
case "3":
DeleteCollege();
break;
case "4":
WorldSkillsCompetitionApp6.mainMenu();
}
}while(userChoice != "4");
}
public void Listing()
{
String listing = "";
Iterator<College> it = listOfColleges.iterator();
College checker;
while(it.hasNext())
{
checker = it.next();
listing = listing + checker.getCollegeInfo();
listing = listing + "\n";
}
if(listOfColleges.isEmpty())
{
System.out.println("No item has been added yet\n");
}
System.out.print("\nList Of Colleges:\n" +listing);
}
public void AddCollege()
{
Scanner sc = new Scanner (System.in);
College tmpCollege = new College();
System.out.print("\nCollege name: ");
tmpCollege.setCollegeName(sc.nextLine());
String[] nameSplitted = tmpCollege.getCollegeName().split(" ");
String tmpCollege1 = nameSplitted[0];
String tmpCollege2 = nameSplitted[1];
String collegeID = (tmpCollege1.substring(0, 2)
+tmpCollege2.substring(0, 2)).toUpperCase();
tmpCollege.setCollegeID(collegeID);
listOfColleges.add(tmpCollege);
}
public String getCollegeInfo()
{
//System.out.println("\nList Of Colleges:");
String msg = "College name: " +this.getCollegeName() +"\n";
msg = msg + "College ID: " +this.getCollegeID();
msg = msg + "\n";
return msg;
}
public void DeleteCollege()
{
Scanner sc = new Scanner (System.in);
boolean collegeFound = false;
System.out.print("\nPlease, enter the ID of the College which will be deleted: ");
String searchCollegeID = sc.nextLine();
Iterator<College> it = listOfColleges.iterator();
College checker;
while(it.hasNext() && collegeFound == false)
{
checker = it.next();
if(checker.getCollegeID().equals(searchCollegeID))
{
collegeFound = true;
String msg ="\n" +checker.getCollegeInfo() +"\n";
msg += "This college will be deleted\n";
System.out.println(msg);
listOfColleges.remove(checker);
}
else
{
}
}
if(collegeFound == false)
{
System.out.println("The college with that ID was not found");
}
}
}
Gracias de antemano por cualquier posible pista.
Valora esta pregunta


0