如何将一堆数据添加到链表中
Posted
技术标签:
【中文标题】如何将一堆数据添加到链表中【英文标题】:how to add bunch of data into linked list 【发布时间】:2021-12-22 17:49:36 【问题描述】:基本上,我只是尝试学习链表,但我似乎无法理解如何将一堆来自不同变量的数据插入其中。它可以作为数组/ ArrayList 工作吗?在我们结束循环之前,我们应该正确存储数据,但是如何?
假设我有变量(姓名、年龄、电话号码)。
'''
char stop='Y';
while(stop!='N')
System.out.println("\nEnter your name : ");
int name= input.nextLine();
System.out.println("\nEnter your age: ");
int age= input.nextInt();
System.out.println("\nEnter your phone number: ");
int phonenum= input.nextLine();
System.out.println("Enter 'Y' to continue, 'N' to Stop: ");
stop = sc.nextLine().charAt(0);
'''
【问题讨论】:
【参考方案1】:首先,更改您的代码以使用适当的类型。姓名和电话的类型应为 String
,而不是 int
。
定义一个类来保存你的字段。 Records 是一种简单的方法。
record Person ( String name , int age , String phone )
声明您的列表以保存该类的对象。
List< Person > list = new LinkedList<>() ;
实例化一些Person
对象,并添加到列表中。
list.add( New Person( "Alice" , 29 , "477.555.1234" ) ) ;
在上面一行中,我硬编码了一些示例数据。在您自己的代码中,您将通过与用户交互将填充的变量传递给构造函数。
list.add( New Person( name , age , phonenum ) ) ;
【讨论】:
【参考方案2】:您可以创建一个具有名称、年龄和现象的对象,然后创建一个您在 while 循环中调用的插入方法。
在伪代码中,它看起来像这样:
public class Data
String name;
int age;
int phenomenon;
//constructor
//getters & setters
上面的这个类将包含用户输入。您可以收集所有用户输入并将其存储在一个数组中,并使用数据数组执行插入,而不是一次插入一个对象
public void InsertData(LinkedList<Data> list, Arraylist<Data> input)
for(Data d: input)
list.add(d);
您可以在此处详细了解链表,以了解链表的工作原理并从头开始实现您自己的链表:https://www.geeksforgeeks.org/implementing-a-linked-list-in-java-using-class/
【讨论】:
【参考方案3】:试试这个
可能性:1
import java.util.*;
public class Naddy
public static void main(String[] args)
Scanner input = new Scanner(System.in);
char stop = 'Y';
LinkedList<Object> list = new LinkedList<Object>();
while (stop != 'N')
System.out.println("\nEnter your name : ");
String name = input.nextLine();
System.out.println("\nEnter your age: ");
int age = input.nextInt();
System.out.println("\nEnter your phone number: ");
long phonenum = input.nextLong();
list.add(name);
list.add(age);
list.add(phonenum);
System.out.println("Enter 'Y' to continue, 'N' to Stop: ");
input.nextLine();
stop = input.nextLine().charAt(0);
System.out.println(list);
可能性:2
import java.util.*;
public class Naddy
public static void main(String[] args)
Scanner input = new Scanner(System.in);
char stop = 'Y';
LinkedList<User> list = new LinkedList<User>();
while (stop != 'N')
System.out.println("\nEnter your name : ");
String name = input.nextLine();
System.out.println("\nEnter your age: ");
int age = input.nextInt();
System.out.println("\nEnter your phone number: ");
long phonenum = input.nextLong();
list.add(new User(name, age, phonenum));
System.out.println("Enter 'Y' to continue, 'N' to Stop: ");
input.nextLine();
stop = input.nextLine().charAt(0);
System.out.println(list);
class User
private String name;
private int age;
private long phonenum;
public User()
public User(String name, int age, long phonenum)
this.name = name;
this.age = age;
this.phonenum = phonenum;
public String getName()
return name;
public void setName(String name)
this.name = name;
public int getAge()
return age;
public void setAge(int age)
this.age = age;
public long getPhonenum()
return phonenum;
public void setPhonenum(long phonenum)
this.phonenum = phonenum;
@Override
public String toString()
return "User [age=" + age + ", name=" + name + ", phonenum=" + phonenum + "]";
【讨论】:
以上是关于如何将一堆数据添加到链表中的主要内容,如果未能解决你的问题,请参考以下文章