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