Java 查找和替换链表中的元素

Java 查找和替换链表中的元素,java,linked-list,Java,Linked List,我需要能够在链接列表中搜索特定的唯一元素(用户名、密码、电子邮件),找到这些元素后,我需要转到列表中的下一个节点,开始一系列语句,允许用户更改配置文件信息。由于某些原因,我的代码无法工作,我不知道如何修复它。任何帮助都会很好 GUI的外观如何 帐户类链接: 因此,用户填写所需信息,如果他们想更改配置文件信息,如“姓名”或“性别”,他们会更改信息,然后将其旁边的组合框设置为“是”,然后单击“保存设置”按钮 以下是链接列表的外观: tobi tobi123 tobi@hotmail.com tob

我需要能够在链接列表中搜索特定的唯一元素(用户名、密码、电子邮件),找到这些元素后,我需要转到列表中的下一个节点,开始一系列语句,允许用户更改配置文件信息。由于某些原因,我的代码无法工作,我不知道如何修复它。任何帮助都会很好

GUI的外观如何

帐户类链接:

因此,用户填写所需信息,如果他们想更改配置文件信息,如“姓名”或“性别”,他们会更改信息,然后将其旁边的组合框设置为“是”,然后单击“保存设置”按钮

以下是链接列表的外观:

tobi
tobi123
tobi@hotmail.com
tobi
Mixed Breed
Male
1-2
Virginia
Walking
peppy
peppy123
peppy@hotmail.com
peppy
Chihuahua
Male
5-6
Virginia
Eating
private void jButtonP1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    //New Linked List created from file
    LinkedList<Account> account = new LinkedList<Account>();

    try
    {
        read(account, "doggydates.txt");
    } catch (Exception e)
    {
        System.err.println(e.toString());
    }
        display(account);

    //user information
    String username = jTextFieldP3.getText();
    String password = jPasswordFieldP1.getText();
    String email = jTextFieldP4.getText();
    String name = jTextFieldP1.getText();
    String breed = (String) jComboBoxP4.getSelectedItem();
    String gender = (String) jComboBoxP3.getSelectedItem();
    String age = (String) jComboBoxP1.getSelectedItem();
    String state = (String) jComboBoxP2.getSelectedItem();
    String hobby = jTextFieldP2.getText();
    //change combo boxes
    String passchange = (String) jComboBoxP13.getSelectedItem();
    String emailchange = (String) jComboBoxP14.getSelectedItem();
    String namechange = (String) jComboBoxP6.getSelectedItem();
    String breedchange = (String) jComboBoxP7.getSelectedItem();
    String genderchange = (String) jComboBoxP8.getSelectedItem();
    String agechange = (String) jComboBoxP9.getSelectedItem();
    String statechange = (String) jComboBoxP10.getSelectedItem();
    String hobbychange = (String) jComboBoxP11.getSelectedItem();

    //cancel combo box
    String accountcancel = (String) jComboBoxP5.getSelectedItem();

    if(username.equals("") || password.equals("") || email.equals("")) // If password and username is empty > Do this >>>
    {
        jButtonP1.setEnabled(false);
        jTextFieldP3.setText("");
        jPasswordFieldP1.setText("");
        jTextFieldP4.setText("");
        jButtonP1.setEnabled(true);
        this.setVisible(true);
    }
    else
    {
        ListIterator<Account> itr = account.listIterator();
        while (itr.hasNext()) 
        {
            Account item = itr.next();
            if(item.getUsername().equals(username) && item.getPassword().equals(password))
            {

                if(passchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.setDataAtCurrent(password);
                        }
                    }
                }

                if(emailchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(email);
                        }
                    }
                }

                if(namechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(name);
                        }
                    }
                }

                if(breedchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(breed);
                        }
                    }
                }

                if(genderchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(gender);
                        }
                    }
                }

                if(agechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(age);
                        }
                    }
                }

                if(statechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(state);
                        }
                    }
                }

                if(hobbychange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(hobby);
                        }
                    }
                }                    

                if(accountcancel.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                        }
                    }
                }  

            }
        }

        String file_name = "doggydates.txt";
        try {
                FileWriter fstream = new FileWriter(file_name);
                BufferedWriter out = new BufferedWriter(fstream);

                ListIterator itr2 = account.listIterator();
                while (itr2.hasNext()) {
                    Account element = (Account) itr2.next();
                    out.write("" + element);
                    out.newLine();
                }
                out.close();
                System.out.println("File created successfully.");

        } catch (Exception e) {
        }

    }
}                                         
public static void read(LinkedList<Account> account, String inputFileName) throws java.io.IOException{
    BufferedReader infile = new BufferedReader(new FileReader(inputFileName));
    while(infile.ready())
    {        
    String username = readLine(infile);
    String password = readLine(infile);
    String email = readLine(infile);
    String name = readLine(infile);
    String breed = readLine(infile);
    String gender = readLine(infile);
    String age = readLine(infile);
    String state = readLine(infile);
    String hobby = readLine(infile);

    Account a = new Account(username, password, email, name, breed, gender, age, state, hobby);
    account.add(a);
    a.showList();
    }
    infile.close();
}
这是我的按钮代码:

tobi
tobi123
tobi@hotmail.com
tobi
Mixed Breed
Male
1-2
Virginia
Walking
peppy
peppy123
peppy@hotmail.com
peppy
Chihuahua
Male
5-6
Virginia
Eating
private void jButtonP1ActionPerformed(java.awt.event.ActionEvent evt) {                                          
    //New Linked List created from file
    LinkedList<Account> account = new LinkedList<Account>();

    try
    {
        read(account, "doggydates.txt");
    } catch (Exception e)
    {
        System.err.println(e.toString());
    }
        display(account);

    //user information
    String username = jTextFieldP3.getText();
    String password = jPasswordFieldP1.getText();
    String email = jTextFieldP4.getText();
    String name = jTextFieldP1.getText();
    String breed = (String) jComboBoxP4.getSelectedItem();
    String gender = (String) jComboBoxP3.getSelectedItem();
    String age = (String) jComboBoxP1.getSelectedItem();
    String state = (String) jComboBoxP2.getSelectedItem();
    String hobby = jTextFieldP2.getText();
    //change combo boxes
    String passchange = (String) jComboBoxP13.getSelectedItem();
    String emailchange = (String) jComboBoxP14.getSelectedItem();
    String namechange = (String) jComboBoxP6.getSelectedItem();
    String breedchange = (String) jComboBoxP7.getSelectedItem();
    String genderchange = (String) jComboBoxP8.getSelectedItem();
    String agechange = (String) jComboBoxP9.getSelectedItem();
    String statechange = (String) jComboBoxP10.getSelectedItem();
    String hobbychange = (String) jComboBoxP11.getSelectedItem();

    //cancel combo box
    String accountcancel = (String) jComboBoxP5.getSelectedItem();

    if(username.equals("") || password.equals("") || email.equals("")) // If password and username is empty > Do this >>>
    {
        jButtonP1.setEnabled(false);
        jTextFieldP3.setText("");
        jPasswordFieldP1.setText("");
        jTextFieldP4.setText("");
        jButtonP1.setEnabled(true);
        this.setVisible(true);
    }
    else
    {
        ListIterator<Account> itr = account.listIterator();
        while (itr.hasNext()) 
        {
            Account item = itr.next();
            if(item.getUsername().equals(username) && item.getPassword().equals(password))
            {

                if(passchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.setDataAtCurrent(password);
                        }
                    }
                }

                if(emailchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(email);
                        }
                    }
                }

                if(namechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(name);
                        }
                    }
                }

                if(breedchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(breed);
                        }
                    }
                }

                if(genderchange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(gender);
                        }
                    }
                }

                if(agechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(age);
                        }
                    }
                }

                if(statechange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(state);
                        }
                    }
                }

                if(hobbychange.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.goToNext();
                            acc.setDataAtCurrent(hobby);
                        }
                    }
                }                    

                if(accountcancel.equals("Yes"))
                {    
                    for(Account acc : account){
                        if(acc.getUsername().equals(username)){
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                            acc.goToNext();
                            acc.deleteCurrentNode();
                        }
                    }
                }  

            }
        }

        String file_name = "doggydates.txt";
        try {
                FileWriter fstream = new FileWriter(file_name);
                BufferedWriter out = new BufferedWriter(fstream);

                ListIterator itr2 = account.listIterator();
                while (itr2.hasNext()) {
                    Account element = (Account) itr2.next();
                    out.write("" + element);
                    out.newLine();
                }
                out.close();
                System.out.println("File created successfully.");

        } catch (Exception e) {
        }

    }
}                                         
public static void read(LinkedList<Account> account, String inputFileName) throws java.io.IOException{
    BufferedReader infile = new BufferedReader(new FileReader(inputFileName));
    while(infile.ready())
    {        
    String username = readLine(infile);
    String password = readLine(infile);
    String email = readLine(infile);
    String name = readLine(infile);
    String breed = readLine(infile);
    String gender = readLine(infile);
    String age = readLine(infile);
    String state = readLine(infile);
    String hobby = readLine(infile);

    Account a = new Account(username, password, email, name, breed, gender, age, state, hobby);
    account.add(a);
    a.showList();
    }
    infile.close();
}
private void jButtonP1ActionPerformed(java.awt.event.ActionEvent evt){
//从文件创建的新链接列表
LinkedList帐户=新建LinkedList();
尝试
{
读(账户,“doggydates.txt”);
}捕获(例外e)
{
System.err.println(例如toString());
}
显示(账户);
//用户信息
字符串username=jTextFieldP3.getText();
字符串密码=jPasswordFieldP1.getText();
字符串email=jTextFieldP4.getText();
String name=jTextFieldP1.getText();
字符串种类=(字符串)jcomboxp4.getSelectedItem();
字符串性别=(字符串)jcomboxp3.getSelectedItem();
字符串年龄=(字符串)jComboxP1.getSelectedItem();
字符串状态=(字符串)jcomboxp2.getSelectedItem();
字符串hobby=jTextFieldP2.getText();
//更改组合框
字符串passchange=(字符串)jcomboxp13.getSelectedItem();
字符串emailchange=(字符串)jcomboxp14.getSelectedItem();
字符串名称更改=(字符串)jcomboxp6.getSelectedItem();
String breedchange=(String)jcomboxP7.getSelectedItem();
字符串genderchange=(字符串)jcomboxp8.getSelectedItem();
String agechange=(String)jComboxP9.getSelectedItem();
String statechange=(String)jComboxP10.getSelectedItem();
字符串hobbychange=(字符串)jcomboxp11.getSelectedItem();
//取消组合框
字符串accountcancel=(字符串)jcomboxp5.getSelectedItem();
if(username.equals(“”)| password.equals(“”)| email.equals(“”)//如果密码和用户名为空>执行此操作>>
{
jButtonP1.setEnabled(false);
jTextFieldP3.setText(“”);
jPasswordFieldP1.setText(“”);
jTextFieldP4.setText(“”);
jButtonP1.setEnabled(true);
此.setVisible(true);
}
其他的
{
ListIterator itr=account.ListIterator();
while(itr.hasNext())
{
账户项目=itr.next();
if(item.getUsername().equals(用户名)和&item.getPassword().equals(密码))
{
如果(passchange.equals(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.setDataAtCurrent(密码);
}
}
}
如果(emailchange.equals(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.setDataAtCurrent(电子邮件);
}
}
}
如果(名称更改等于(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.setDataAtCurrent(名称);
}
}
}
如果(breedchange.equals(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.setDataAtCurrent(品种);
}
}
}
如果(性别变化等于(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.setDataAtCurrent(性别);
}
}
}
如果(年龄变化等于(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.goToNext();
acc.setDataAtCurrent(年龄);
}
}
}
如果(statechange.equals(“是”))
{    
会计科目(会计科目:会计科目){
如果(根据getUsername()等于(用户名)){
acc.goToNext();
acc.goToNext();
acc.goToNext();
{
   {tobi, tobi123, tobi@hotmail.com, tobi, Mixed Breed, Male, 1-2, Virginia, Walking},
   {peppy, peppy123, peppy@hotmail.com, peppy, Chihuahua, Male, 5-6, Virginia, Eating}
}