import java.util.*;
public class Election {
public static void main(String[] args) {
//ArrayList<String> Declaration
ArrayList<String> al= new ArrayList<String>();
//add method for String ArrayList
al.add("Mike Doherty");
al.add("Joan Murphy");
al.add("Marie Smith");
al.add("George Jones");
System.out.println("ArrayList before remove:");
for(String var: al){
System.out.println(var);
}
//Removing 1st element
al.remove(1);
System.out.println("ArrayList After remove:");
for(String var2: al){
System.out.println(var2);
}
//adding a new element
al.add("Tom Carroll");
System.out.println("ArrayList After new name:");
for(String var3: al){
System.out.println(var3);
}
}
}
上面的代码完成了它应该做的事情,但不是我想要的方式。
我想要它做的是打印前四个名字,即Mike Doherty给George Jones。 (我可以这样做)
然而,我想要做的是允许用户输入候选人,即Joan Murphy,并允许用户输入新的候选人,即汤姆卡罗尔。
然后最后我想打开结果,Joan Murphy被移除,Tom Carroll补充道。
我完成它的方式确实有效,但我不知道如何通过让用户删除名称并输入名称来实现。
任何帮助都会很棒。
谢谢,
马克
答案 0 :(得分:1)
您正在寻找的是“按值删除”,而不是索引。
al.remove("Mike Doherty");
将“Mike Doherty”替换为用作用户输入的字符串。
答案 1 :(得分:0)
您可以使用阅读器获取用户输入,例如:
`System.out.println("Please enter the candidate name you wish to remove: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String toBeRemoved = br.readLine();
al.remove(toBeRemoved);`
然后你以同样的方式添加一个人:
`System.out.println("Please enter the candidate name you wish to add: ");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String toBeAdded = br.readLine();
al.add(toBeRemoved);`
由于列表中的项目是字符串,您可以通过将它们的值传递给列表的remove
方法来删除它们。