2017-06-17 89 views
-1
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); 

    } 

} 
} 

上面的代碼做它應該做的事情,但不是我想要的方式。需要Arraylist幫助

我想要它做的是打印出前四個名字,即邁克杜赫蒂喬治瓊斯。 (這個我可以做)

但是我想要做的是允許用戶輸入一個候選人,例如瓊·墨菲,並允許用戶輸入一個新的候選人,即湯姆·卡羅爾。

然後最後我想打印結果與霍安墨菲刪除和湯姆卡羅爾補充說。

我這樣做的方式確實有效,但我不知道如何通過讓用戶刪除名稱並輸入名稱來完成此操作。

任何幫助將是偉大的。

感謝,

馬克

+0

al.remove(1);將刪除第二個元素。索引從零開始 –

回答

1

看來,你要找的是什麼「的值刪除」,而不是指數。

al.remove("Mike Doherty"); 

替換「邁克·多爾蒂」與作爲用戶輸入的字符串。

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方法來刪除它們。