在java LinkedList节点上存储多个数据项并显示它们

在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;

我需要用Java制作一个LinkedList。我希望在每个节点中,8个数据项保持存储状态,因此当下一个主题注册时,该节点存储这8个数据项

我使用answer来获取关于如何做到这一点的参考,我认为我做得对,但当我使用选项4时,屏幕上看不到它的列表

谢谢

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”);
,我该怎么做???