2013-02-14 78 views
0

我是Java編程的新手。我想問我怎麼能插入/刪除用戶輸入到我生成的數組列表中。它應該顯示形成我已經有一個代碼的新的列表。但它不工作以及..這裏是我的代碼:按用戶輸入插入/刪除數組中的元素

import java.io.*; 
import java.util.ArrayList; 
import java.util.Scanner; 
import java.util.*; 

class New1 { 
    public static InputStreamReader r = new InputStreamReader (System.in); 
    public static BufferedReader inp = new BufferedReader(r); 

    public static void main (String args[]) throws Exception { 
     ArrayList employees = new ArrayList(); 
     employees.add("A"); 
     employees.add("B"); 
     employees.add("C"); 
     employees.add("D"); 
     employees.add("E"); 

     Scanner scan1 = new Scanner (System.in); 
     System.out.println ("Lists of Employees"); 
     System.out.println ("What do you want to do?:"); 
     System.out.println ("1 - Display list. \n2 - Insert New Name. \n3 - Delete an item. \n4 - Nothing." + "\n "); 
     int task = scan1.nextInt(); 

     if (task==1) { 
      System.out.println ("Contents of Employees:" + employees); 
     } else if (task==2) { 
      do { 
       System.out.println("Current list is " + employees); 
       System.out.println("Add more? (y/n) "); 
       if (scan1.next().startsWith("y")) { 
        System.out.println("Enter : "); 
        employees.add(scan1.next()); 
       } else { 
        break; 
       } 
      } while (true); 

      System.out.println("List is " + employees); 
      String[] arr = employees.toArray(new String[0]); 
      System.out.println("Array is " + Arrays.toString(arr)); 
     } 
    } 

我真的需要幫助這裏。 >。 <

+1

「_but它不工作well_」 ISN」 t非常具體... – jlordo 2013-02-14 20:25:05

+0

你的意思是不工作? – 2013-02-14 20:25:06

+0

它現在做了什麼,它應該做什麼? – dutt 2013-02-14 20:30:22

回答

0

首先你的代碼中有一些編譯時錯誤。 在最後一行代碼中,'}'缺失。類塊不關閉。其次,使用下面的行, String [] arr =(String [])employees.toArray(new String [0]); 而不是 String [] arr = employees.toArray(new String [0]);

as toArray(new String [0])將返回一個對象,並將其存儲在數組中。所以,你必須將它轉換爲數組。現在,它會正常工作。

+0

謝謝,我會試試看。 o.o – Louie 2013-02-15 08:12:58

+0

waah。謝謝。 TwT 我可以有一個用於刪除數組元素的示例行嗎?這只是我現在需要的一切。 >。< – Louie 2013-02-15 09:25:49

+0

我的意思是「通過用戶輸入刪除原始數組列表中的數組元素」..>。< – Louie 2013-02-15 09:36:33

0

你應該參數列表中初始化,否則下面這段代碼不會編譯:String[] arr = employees.toArray(new String[0]);

雖然你可以明確地投右手錶達String[],這不是一個很好的做法,無視仿製藥的意圖在編譯時捕獲潛在的錯誤。

我這樣做:

List<String> employees = new ArrayList<String>(); 

,取而代之的0,將使用列表的大小來初始化正在創建數組的大小:

String[] arr = employees.toArray(new String[employees.size()]); 
+0

所以我只是要擦除 String [] arr = employees.toArray(new String [0]); ?? – Louie 2013-02-15 07:57:08

+0

是的,使用'String [] arr = employees.toArray(new String [employees.size()]);'而不是。 – 2013-02-15 09:19:50

+0

你能幫我通過用戶輸入刪除一個數組元素嗎? o.o – Louie 2013-02-15 11:03:53