在java LinkedList节点上存储多个数据项并显示它们
我需要用Java制作一个LinkedList。我希望在每个节点中,8个数据项保持存储状态,因此当下一个主题注册时,该节点存储这8个数据项 我使用answer来获取关于如何做到这一点的参考,我认为我做得对,但当我使用选项4时,屏幕上看不到它的列表 谢谢在java LinkedList节点上存储多个数据项并显示它们,java,data-structures,linked-list,Java,Data Structures,Linked List,我需要用Java制作一个LinkedList。我希望在每个节点中,8个数据项保持存储状态,因此当下一个主题注册时,该节点存储这8个数据项 我使用answer来获取关于如何做到这一点的参考,我认为我做得对,但当我使用选项4时,屏幕上看不到它的列表 谢谢 import java.util.*; class PaqueteDeDatos { String Nombre; String Apellido; String Cedula; String Direccion;
import java.util.*;
class PaqueteDeDatos
{
String Nombre;
String Apellido;
String Cedula;
String Direccion;
String Telefono;
String CorreoElectronico;
String Intensivo1;
String Intensivo2;
public PaqueteDeDatos(String a, String b, String c, String d, String e, String f, String g, String h) {
Nombre = a;
Apellido = b;
Cedula = c;
Direccion = d;
Telefono = e;
CorreoElectronico = f;
Intensivo1 = g;
Intensivo2 = h;
}
}
public class Proyecto{
public static void main(String[] args) {
System.out.println ("┌──────────────────────────────────────────────────────────────────┐");
System.out.println ("│ Manejo de listas dinamicas en Java │");
System.out.println ("├──────────────────────────────────────────────────────────────────┤");
System.out.println ("│Aplicacion que controla la informacion asociada a estudiante a inscribirse en un posible curso intensivo│");
System.out.println ("└──────────────────────────────────────────────────────────────────┘");
//Pausa();
for (int i=0; i<25; ++i) System.out.println();
LinkedList<PaqueteDeDatos> ListaDeAlumnos = new LinkedList<PaqueteDeDatos>();
Iterator Iterador = ListaDeAlumnos.iterator();
MenuPrincipal();
Scanner CapturaDeDatos = new Scanner(System.in);
System.out.print ("Introduzca su opcion: ");
char Opcion = CapturaDeDatos.next().charAt(0);
if ((int) Opcion !=53 && (int) Opcion !=52 && (int) Opcion !=51 && (int) Opcion !=50 && (int) Opcion !=49) {
System.out.println("Opcion invalida. Por favor introduzca nuevamente su eleccion...");
Pausa();
for (int i=0; i<25; ++i) System.out.println();
MenuPrincipal();
System.out.print ("Introduzca su opcion: ");
Opcion = CapturaDeDatos.next().charAt(0);
}
if ((int) Opcion ==49) {
for (int i=0; i<25; ++i) System.out.println();
System.out.print ("Introduzca el nombre del alumno: ");
String Nombre = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca el apellido del alumno: ");
String Apellido = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca el numero de cedula del alumno: ");
String Cedula = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca la direccion de habitacion del alumno: ");
String Direccion = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca el telefono de contacto del alumno: ");
String Telefono = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca el correo electronico del alumno: ");
String CorreoElectronico = CapturaDeDatos.next();
System.out.println ();
System.out.println ("A continuacion introduzca los intensivos a cursar por el alumno, basandose en la tabla superior.");
System.out.println ("Tenga en cuenta que solo se pueden inscribir MAXIMO 2 intensivos. Para evitar retrazos en el inicio");
System.out.println ("de los intensivos, procure que los intensivos escogidos por el alumno no choquen entre si");
System.out.println ("por tener los mismos horarios. Introduzca 00 (2 ceros) luego del primer intensivo, si el alumno solo");
System.out.println ("va a cursar un intensivo...");
System.out.println ();
System.out.print ("Introduzca el codigo del intensivo seleccionado por el alumno: ");
String Intensivo1 = CapturaDeDatos.next();
System.out.println ();
System.out.print ("Introduzca el codigo del intensivo seleccionado por el alumno: ");
String Intensivo2 = CapturaDeDatos.next();
System.out.println ();
PaqueteDeDatos Alumno = new PaqueteDeDatos (Nombre,Apellido,Cedula,Direccion,Telefono,CorreoElectronico,Intensivo1,Intensivo2);
ListaDeAlumnos.add(Alumno);
System.out.println ("Alumno inscrito exitosamente.");
System.out.println ("El sistema regresara al menu principal en 5 segundos...");
Pausa();
for (int i=0; i<25; ++i) System.out.println();
MenuPrincipal();
System.out.print ("Introduzca su opcion: ");
Opcion = CapturaDeDatos.next().charAt(0);
}
// if ((int) Opcion ==50) {
//
// }
// if ((int) Opcion ==51) EliminarAlumno();
if ((int) Opcion ==52) {
while (Iterador.hasNext())
System.out.println (Iterador.next());
System.out.println ("Listado de alumnos mostrado exitosamente.");
System.out.println ("El sistema regresara al menu principal en 5 segundos...");
Pausa();
for (int i=0; i<25; ++i) System.out.println();
MenuPrincipal();
System.out.print ("Introduzca su opcion: ");
Opcion = CapturaDeDatos.next().charAt(0);
}
if ((int) Opcion ==53) System.exit(0);
}
// Metodo para la pausa en pantalla
private static void Pausa() {
try {
Thread.sleep(5000);
}
catch (InterruptedException ex) {
}
}
// Metodo para el menu principal
private static void MenuPrincipal() {
System.out.println ("╔════════════════════╗");
System.out.println ("║ Menu Principal ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ Inscribir Alumno (1) ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ Modificar Alumno (2) ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ Eliminar Alumno (3) ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ Mostrar Alumnos Inscritos (4) ║");
System.out.println ("╠════════════════════╣");
System.out.println ("║ Salir del sistema (5) ║");
System.out.println ("╚════════════════════╝");
System.out.println ();
}
}
import java.util.*;
PaquetedAtos类
{
字符串名称;
弦阿佩利多;
线状雪松;
弦定向;
弦乐;
串CorreoElectronico;
字符串强度VO1;
VO2;
公共paquetedadatos(字符串a、字符串b、字符串c、字符串d、字符串e、字符串f、字符串g、字符串h){
Nombre=a;
阿佩利多=b;
塞杜拉=c;
Direccion=d;
Telefono=e;
CorreoElectronico=f;
强度vo1=g;
强度vo2=h;
}
}
公共类项目{
公共静态void main(字符串[]args){
System.out.println(“┌──────────────────────────────────────────────────────────────────┐");
System.out.println(“│ 爪哇岛迪纳米卡斯酒店│");
System.out.println(“├──────────────────────────────────────────────────────────────────┤");
System.out.println(“│学生对信息的控制是不可能的│");
System.out.println(“└──────────────────────────────────────────────────────────────────┘");
//Pausa();
对于(int i=0;i你的问题真的很难理解。但是如果你问为什么ListaDeAlumnos
列表中似乎什么都没有,答案是你没有在里面放任何东西
如果要将元素放入列表中,需要使用add
、insert
或replace
方法之一。有关详细信息,请参阅javadocs或关于使用Java集合的a。1)惯例是变量名以小写字母开头。2)只需将Opcion
与实际字符进行比较,而不是将其转换为整数并与ascii值进行比较。3)您的实际问题是什么以及您的问题在哪里也不是很清楚。1.您是对的,但我这样编码是为了能够理解自己的代码。2.谢谢,我忘了更改它。3.我需要添加第6条学生(每个都作为一个节点),每个都将“包含”8个数据项(名字、姓氏、SSN、地址、电话、电子邮件和学生想参加的2节课的2个代码。在我添加六名学生后,我需要转到选项4,并显示所有学生及其个人数据(即,我需要显示所有6个节点中包含的所有8个数据项)。我还需要修改节点内的数据项,甚至删除整个节点…”你说得对,但我这样编码是为了理解自己的代码。“-这是一种糟糕的做法。你应该编写代码,以便其他人能够理解你的代码。你是对的,对不起,我的错误。在用java编写了18个小时的代码之后,即使你开始感到头晕,也会忘记添加一两行代码。正如你所说,我没有在ListaDeAlumnos
列表中添加任何内容。现在,如果我添加ListaDeAlumnos.add(Alumno);
它会将它添加到列表中,但在选择菜单上的选项4后,我在屏幕上只能看到崩溃(使用迭代器)。如果我使用System.out.println(ListaDeAlumnos.getLast());
而不是迭代器,我会得到“PaqueteDeDatos@1fdc96c",当然,它不是我放在任何节点中的东西…这很可能是因为您在创建迭代器后正在修改列表。(您将得到ConcurrentModificationException)。以及“…@…”打印内容是因为这是toString
的默认版本提供给您的。如果您想要漂亮的东西,您必须覆盖toString()PaqueteDeDatos
类中的
方法。好吧,我解决了崩溃问题,但我仍然无法摆脱…@…的东西。我提到过我真的很讨厌Java吗?不,说真的,我不明白你说的“如果你想要漂亮的东西,你必须在PaqueteDeDatos类中重写toString()方法”是什么意思@user605921-猜猜看。我不在乎你是否讨厌Java。这是你的问题,不是我的问题。拿出你的Java教科书,读一读“方法重写”。然后转到Java文档,阅读他们关于1)PrintStream.print(Object)
做什么,2)Object.toString()做什么有。我没有java教科书,这就是我在这里提问的原因。我确实阅读了关于toStream()
的愚蠢的javadoc,并在网上阅读了大量示例,但所有这些都没有比你的建议离我更远,主要是因为据我所知,toString()
需要一个类和一个“转换”的对象对于我来说,这不起作用,因为我需要使用迭代器读取所有节点。如果我必须toString类tsc2=new-toString类(“Jane”,“Doe”);
然后System.out.println(“使用toString()方法的类:“+tsc2”);
,我该怎么做???