2016-02-01 92 views
-2

我試圖將數組轉換爲列表,反之亦然,並使用下面的代碼分別執行不同的數組和列表方法。運行Java程序時出錯

import java.util.*; 

public class LinkedList{ 

    public static void main(String[] args){ 
     String[] things1 = {" seminar", " presentations", " hackathon", " movies"}; 
     LinkedList<String> theList = new LinkedList<String>(Arrays.asList(things1)); 

     theList.add("tickets"); 
     theList.addFirst("Hellow"); 

     things1 = theList.toArray(new String[theList.size()]); 

     for(String x: things1) 
      System.out.printf("%s", x); 
    } 
} 

現在的問題是,當我從NetBeans中運行它,它工作正常,但是當我在普通的文本編輯器嘗試它,並通過終端運行它給出了一個錯誤:

LinkedList.java:10: error: type LinkedList does not take parameters 
LinkedList<String> theList = new LinkedList<String>(Arrays.asList(things1)); 
     ^
LinkedList.java:10: error: type LinkedList does not take parameters 
LinkedList<String> theList = new LinkedList<String>(Arrays.asList(things1)); 
             ^
2 errors 

我認爲列表應該帶參數,但錯誤是完全相反的。

這是爲什麼?

+10

類重命名爲'LinkedList' – Reimeus

+0

別的其他「錯誤運行Java程序,而」不 - 這是一個錯誤,而* *編譯Java文件。 –

回答

5

您導入

java.util.* 

而且因爲有一個在標準庫一java.util.LinkedList的NetBeans似乎挑一上來,而不是同時javac從JDK使用自己LinkedList不帶參數(如StringLinkedList<String)。無論你使用你把全名LinkedList解決這個問題,你可以做以下

  • 一個重命名你的類
  • com.myproject.LinkedListjava.util.LinkedList,清楚你想要(更換com.myproject哪一個你自己的鏈表在實際包裝)
+0

導入不夠。您必須添加包名稱,因爲名稱不唯一。 – Jens

+0

你說得對。我更新了我的答案 – Simon

+0

好的,這很有效,謝謝。但爲什麼我必須更改類名?請您澄清一下? –