Java 将多个不同的数据位存储到链表中
我需要将3个不同的数据位存储到一个链表中。首先是一个名字,我在工作,然后我需要存储员工编号和他们的职业。我找不到任何关于将节点链接到一组数据的信息。任何帮助都将不胜感激 这是运行的代码,TeamMemberTest:Java 将多个不同的数据位存储到链表中,java,Java,我需要将3个不同的数据位存储到一个链表中。首先是一个名字,我在工作,然后我需要存储员工编号和他们的职业。我找不到任何关于将节点链接到一组数据的信息。任何帮助都将不胜感激 这是运行的代码,TeamMemberTest: package teammember; import java.util.*; import java.util.Scanner; public class TeamMemberTest { public static void main(String args[])
package teammember;
import java.util.*;
import java.util.Scanner;
public class TeamMemberTest {
public static void main(String args[]) {
/* Linked List Declaration */
LinkedList<String> linkedlist = new LinkedList<String>();
Scanner input = new Scanner(System.in);
boolean mainloop = true;
String name;
int employeeNo;
String position;
int choice;
while(true){
System.out.println("Menu");
System.out.print("1. add project \n");
System.out.print("2. display project \n");
System.out.print("3. remove project \n");
System.out.print("4. display all projects \n");
System.out.print("\nEnter your option: ");
choice = input.nextInt();
switch(choice){
case 1:
/*add(String Element) is used for adding
* the elements to the linked list*/
name = Input.getString("name: ");
employeeNo = Input.getInteger("Enter employee number: ");
position = Input.getString("Enter employee position: ");
linkedlist.add(name);
System.out.println("LinkedList after deletion of first and last element: " +linkedlist);
break;
case 2:
name = Input.getString("name: ");
if(linkedlist.contains(name)){
System.out.println("LinkedList does contain " + name);
}
break;
case 3:
name = Input.getString("name: ");
linkedlist.remove(name);
System.out.println("LinkedList after deletion of first and last element: " +linkedlist);
break;
case 4:
System.out.println("Linked List Content: " +linkedlist);
break;
default :
System.out.println("This is not a valid option try again.");
break;
}
}
}
}
这是输入代码:
package teammember;
import java.io.*;
public class Input{
private static BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
public static Character getCharacter(String prompt){
Character value;
System.out.print(prompt);
try{
value=Input.input.readLine().charAt(0);
}
catch(Exception error){
// error condition
value=null;
}
return value;
}
public static Double getDouble(String prompt){
Double value;
System.out.print(prompt);
try{
value=Double.parseDouble(Input.input.readLine());
}
catch(Exception error){
// error condition
throw new NumberFormatException();
}
return value;
}
public static Integer getInteger(String prompt){
Integer value;
System.out.print(prompt);
try{
value=Integer.parseInt(Input.input.readLine());
}
catch(Exception error){
// error condition
throw new NumberFormatException();
}
return value;
}
public static String getString(String prompt){
String string;
System.out.print(prompt);
try{
string=Input.input.readLine();
}
catch(Exception error){
// error condition
string=null;
}
return string;
}
}您需要创建
团队成员的链接列表,而不是创建字符串的链接列表,如下所示:
LinkedList<TeamMember> linkedlist = new LinkedList<TeamMember>();
确保在类中添加一个toString()
方法,TeamMember
,这样您就可以像System.out.println(TeamMember的对象)一样操作了代码>。您的IDE可以通过单击按钮生成toString()
方法。下面给出的是eclipse IDE为您的类自动生成的toString()
方法:
@Override
public String toString() {
return "TeamMember [name=" + name + ", employeeNo=" + employeeNo + ", position=" + position + "]";
}
检查以了解有关toString()
的更多信息。我找不到任何有关将节点链接到一组数据的信息。
这似乎是您的问题,但我不明白您的意思。尝试发布一个简短的代码示例,并重新表述您的问题。@petermm抱歉,我不确定您的意思。我所发布的就是我所拥有的。我需要能够存储所有3种数据类型(名称employeeNo position),并能够在搜索特定名称时将其提取出来谢谢,这消除了一些错误。比如说,在案例2中,我必须显示输入的姓名的详细信息,这将如何实现?非常感谢,这已经消除了巨大的压力。您一定已经使用java很长时间了。我计划在夏天在家里做一些项目,希望能得到一些练习in@chriscode99-我已经为您提供了项目进展所需的一切。如果您需要任何进一步的帮助,请告诉我。这是否也适用于二进制搜索树,但我将输入项目名称、开始和完成日期。这取决于您如何实现二进制搜索树。
choice = input.nextInt();
boolean found;
switch (choice) {
case 1:
name = Input.getString("name: ");
employeeNo = Input.getInteger("Enter employee number: ");
position = Input.getString("Enter employee position: ");
linkedlist.add(new TeamMember(name, employeeNo, position));
break;
case 2:
found = false;
name = Input.getString("name: ");
for (TeamMember teamMember : linkedlist) {
if (teamMember.getName().equalsIgnoreCase(name)) {
System.out.println("Name: " + teamMember.getName() + "Employee No.: "
+ teamMember.getemployeeNo() + "Position: " + teamMember.getPosition());
found = true;
break;
}
}
if (!found) {
System.out.println("The team member was not found.");
}
break;
case 3:
found = false;
name = Input.getString("name: ");
for (TeamMember teamMember : linkedlist) {
if (teamMember.getName().equalsIgnoreCase(name)) {
linkedlist.remove(teamMember);
found = true;
break;
}
}
if (found) {
System.out.println("LinkedList after deletion of " + name + "'s record" + ": " + linkedlist);
} else {
System.out.println("The team member was not found.");
}
break;
case 4:
System.out.println("Linked List Content: " + linkedlist);
break;
default:
System.out.println("This is not a valid option try again.");
break;
}
@Override
public String toString() {
return "TeamMember [name=" + name + ", employeeNo=" + employeeNo + ", position=" + position + "]";
}