gpt4 book ai didi

java - 不使用迭代器从用户输入中删除 arraylist 的元素

转载 作者:行者123 更新时间:2023-11-29 03:02:28 25 4
gpt4 key购买 nike

我需要在不使用 java 迭代器的情况下从用户输入中删除 ArrayList 的任何元素:

(参见(切换)案例 2:)

当我选择选项 2 并继续输入姓名(例如 James)时,它不会执行任何操作,因为 friend 列表是相同的。任何帮助将不胜感激!

import java.util.Scanner;
import java.util.ArrayList;

public class FriendsTest
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);

// objects
ArrayList<Friends> friendsList = new ArrayList<>();

Friends a1 = new Friends("James", 10);
Friends a2 = new Friends("Christopher", 17);
Friends a3 = new Friends("George", 25);
Friends a4 = new Friends("Linda", 31);
Friends a5 = new Friends("Karen", 62);

friendsList.add(a1);
friendsList.add(a2);
friendsList.add(a3);
friendsList.add(a4);
friendsList.add(a5);

// menu

int menu_choice;

String name;
int age;

do
{
System.out.println("\n1. Add a Friend");
System.out.println("2. Remove a Friend");
System.out.println("3. Display all Friends");
System.out.println("4. Exit\n");

System.out.print("\nSelect one option: ");
menu_choice = input.nextInt();

switch (menu_choice)
{
case 1:
System.out.print("Enter Friend's name: ");
name = input.next();

System.out.print("Enter Friend's age: ");
age = input.nextInt();

Friends a6 = new Friends(name, age);
friendsList.add(a6);
break;

case 2:
System.out.print("Enter Friend's name to remove: ");
name = input.next();

friendsList.remove(name);
break;

case 3:
for(int k = 0; k < friendsList.size(); k++)
{
System.out.println(friendsList.get(k).name + " " + friendsList.get(k).age);
}
break;

case 4:
System.exit(0);

}//end switch



} while (menu_choice != 4);


}//end main



}//end class

更新我的构造函数和方法类

public class Friends 
{
public String name;
public int age;

// parameters
public Friends(String _name, int _age)
{
name = _name;
age = _age;
}

// set name
public void setName(String friendName)
{
name = friendName;
}

// get name
public String getName()
{
return name;
}

// set age
public void setAge(int friendAge)
{
age = friendAge;
}

// get age
public int getAge()
{
return age;
}

// return toString()
public String toString()
{
return getName() + " " + getAge();
}

} //end clas

最佳答案

一个简单的机制是removeIf。像这样的东西:

friendsList.removeIf(friend -> friend.hasName(name);

请注意,这使用 Java 8。

假设 Friend 有一个 hasName 方法。如果你只有 getName 那么:

friendsList.removeIf(friend -> friend.getName().equals(name));

关于java - 不使用迭代器从用户输入中删除 arraylist 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com