将另一个类的多个实例添加到链接列表中

时间:2014-10-22 16:17:54

标签: java object linked-list

我正在尝试创建银行记录列表。每条记录包括名字,姓氏,电话号码和余额。在第一个类中,我向用户询问此信息,然后创建要添加到列表中的记录类的新实例。但是,当我添加更多记录时,它会替换最新记录的所有记录,您可以使用我的showAllRecords()方法查看。我该如何解决这个问题?

主类中的add和showAllRecords方法。这些方法是从main方法中的switch语句调用的:

private static void showAllRecords() 
{
    if(records.bankRecords.size() == 0)
        System.out.println("There are no records.");
    else
        for (int i = 0; i < records.bankRecords.size(); i++)
        {
            System.out.println(records.bankRecords.get(i));
        }

}

private static void add() 
{
    Scanner scan = new Scanner(System.in);

    System.out.print("Please enter the first name: ");
    String firstName = scan.next();
    System.out.print("Please enter the last name: ");
    String lastName = scan.next();
    System.out.print("Please enter the phone number: ");
    String phoneNumber = scan.next();
    System.out.print("Please enter the balance: ");
    int balance = scan.nextInt();

    bankRecords.add(new records(firstName, lastName, phoneNumber, balance));
}

记录类

public class records 
{   
public static String firstName;
public static String lastName;
public static String phoneNumber;
public static int balance;

LinkedList<records> bankRecords = new LinkedList<records>();

public records(String tFirstName, String tLastName, String tPhoneNumber, int tBalance)
{
    firstName = tFirstName;
    lastName = tLastName;
    phoneNumber = tPhoneNumber;
    balance = tBalance;
}
}

3 个答案:

答案 0 :(得分:2)

出现此问题是因为records类中的所有字段均为static。从字段声明中删除static关键字。每当您创建static类的新对象时,它们都为records,您将覆盖这些static字段。

静态字段属于不属于对象的类。

答案 1 :(得分:0)

  1. 删除您在记录类中声明的LinkedList实例。你为什么那样做在你的主类中声明它并尝试使用我认为在你的情况下更好的ArrayList。原因是记录有静态字段
  2. 为什么你的班级名字以小写字母开头。这是一种非常糟糕的做法。

答案 2 :(得分:0)

你有一个固有的计划问题。

实体&#34;银行记录&#34;之间存在差异,正如您所说,其中包括名称,余额等,以及实体&#34;银行记录列表&#34;,其中包括,可变数量的银行记录。

您的&#34;记录&#34; class(请在类名的开头使用大写字母)尝试混合两者。所以你有一个记录和一个列表。您应该将这两个实体分开。然后,您创建一个新的&#34;记录&#34;,并将其添加到&#34; ListOfBankRecords&#34;对象。

此外,您似乎同时拥有一个名为&#34;记录&#34;的变量和变量。这也是大写字母本来好的原因。你不应该有一个与一个同名的变量。