在java LinkedList节点上存储多个数据项,并使用.toString()将其显示为字符串
我正在做一个编程项目,它是这样的: 处理学生注册的系统。注册时,您必须提供姓名、身份证号码、地址、电话、电子邮件和2节课的代码才能注册。这应该存储在LinkedList中 因为LinkedList中的每个节点只能存储一个数据,所以我决定更进一步。使用answer作为基础,我做了一个更改,不是将每个学生的8个学生数据存储在每个注册学生的8个连续节点中,而是创建了一个具有8个属性的对象,该对象存储每个学生注册的8个数据,因此,当您想要删除一个学生时,只需删除包含该对象的节点,而不是删除每个要删除的学生的8个连续节点 当我在对象上添加学生数据,然后在LinkedList节点上添加学生数据时,这个想法非常有效。然而,当我需要在屏幕上显示所有学生时,这项技术就失败了 理论上,通过使用迭代器方法.hasNext()和.Next()列表将迭代并在屏幕上显示存储在节点中的对象的内容,它确实。。。但是用散列代替字符串(我需要的)。因此,在屏幕上,而不是显示 Angel Pérez 15956228 7274205 skyx26@yahoo.com Caracas Carolina Rojas 13508200 6253241 caro_caro27@hotmail.com Maracaibo在java LinkedList节点上存储多个数据项,并使用.toString()将其显示为字符串,java,linked-list,Java,Linked List,我正在做一个编程项目,它是这样的: 处理学生注册的系统。注册时,您必须提供姓名、身份证号码、地址、电话、电子邮件和2节课的代码才能注册。这应该存储在LinkedList中 因为LinkedList中的每个节点只能存储一个数据,所以我决定更进一步。使用answer作为基础,我做了一个更改,不是将每个学生的8个学生数据存储在每个注册学生的8个连续节点中,而是创建了一个具有8个属性的对象,该对象存储每个学生注册的8个数据,因此,当您想要删除一个学生时,只需删除包含该对象的节点,而不是删除每个要删除的学
使类可打印或toString()可打印的正常方法是重写该类的toString()方法。最简单的方法是让IDE生成toString()方法。其他任何事情都可能更加困难
如果无法更改代码以添加toString(),则可以编写自己的方法将对象列表转换为字符串,该字符串检查列表中的每个元素,并按自己的方式进行转换。使类可打印或toString()可打印的正常方法是重写该类的toString()方法。最简单的方法是让IDE生成toString()方法。其他任何事情都可能更加困难
如果无法更改代码以添加toString(),则可以编写自己的方法将对象列表转换为字符串,该字符串检查列表中的每个元素,并按自己的方式进行转换。您的PaquetedDataTos类应重写toString方法,以便打印所需字符串,而不是打印hashCode
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 String toString()
{
StringBuilder sb = new StringBuilder();
sb.append(Nombre).append(" ")
.append(Apellido).append(" ")
.append(Cedula).append(" ")
.append(Direccion).append(" ")
.append(Telefono).append(" ")
.append(CorreoElectronico).append(" ")
.append(Intensivo1).append(" ")
.append(Intensivo2).append(" ");
return sb.toString();
}
}
PaquetedAtos类应该重写toString方法,这样它就可以打印所需的字符串,而不是打印hashCode
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 String toString()
{
StringBuilder sb = new StringBuilder();
sb.append(Nombre).append(" ")
.append(Apellido).append(" ")
.append(Cedula).append(" ")
.append(Direccion).append(" ")
.append(Telefono).append(" ")
.append(CorreoElectronico).append(" ")
.append(Intensivo1).append(" ")
.append(Intensivo2).append(" ");
return sb.toString();
}
}
男人我爱你!!!我真的喜欢。你是我的新英雄,这正是我需要的。谢谢你,谢谢你,谢谢你,直到时间的尽头!在这里使用
StringBuilder
比使用简单的String
串联没有任何优势。@Joachim:Performance vise Yes!我之所以这么说,是因为有很多属性用于对象和可读性。可读性是有争议的(我发现直接版本更可读)。但你所说的“对于对象”是什么意思呢?@aNish Performance vise no,因为在这种情况下,编译器会自动执行该操作。你可以通过检查你的字节码来验证这一点。男人们,我爱你!!!我真的喜欢。你是我的新英雄,这正是我需要的。谢谢你,谢谢你,谢谢你,直到时间的尽头!在这里使用StringBuilder
比使用简单的String
串联没有任何优势。@Joachim:Performance vise Yes!我之所以这么说,是因为有很多属性用于对象和可读性。可读性是有争议的(我发现直接版本更可读)。但你所说的“对于对象”是什么意思呢?@aNish Performance vise no,因为在这种情况下,编译器会自动执行该操作。您可以通过检查字节码来验证这一点。
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 String toString()
{
StringBuilder sb = new StringBuilder();
sb.append(Nombre).append(" ")
.append(Apellido).append(" ")
.append(Cedula).append(" ")
.append(Direccion).append(" ")
.append(Telefono).append(" ")
.append(CorreoElectronico).append(" ")
.append(Intensivo1).append(" ")
.append(Intensivo2).append(" ");
return sb.toString();
}
}