2016-12-06 86 views
0

我試圖用下面的代碼實現一個Graph作爲一個鄰接列表。我得到了第9行的原始類型錯誤。在Java中實現圖形,獲取原始類型錯誤

編輯:只是想澄清,我得到一個未檢查/不安全的操作錯誤,然後當我用Xlint編譯時,我得到原始類型錯誤。

import java.util.LinkedList; 

public class AdjListGraph{ 
    private int vertices; 
    private LinkedList<Integer>[] AdjList; 

    public AdjListGraph(int v){ 
     this.vertices = v; 
     AdjList = (LinkedList<Integer>[]) new LinkedList[v]; 
     for (int i = 0; i < v; i++){ 
      AdjList[i] = new LinkedList<Integer>(); 
     } 
    } 
+0

對不起,應該是第9行,這是問題行「AdjList =(LinkedList [])new LinkedList [v];」。我正在命令行編譯它。 – user3002315

+0

LinkedList不會爲隨機訪問提供很好的性能。請參閱http://stackoverflow.com/questions/10656471/performance-differences-between-arraylist-and-linkedlist – dnault

+1

可能的重複[如何在Java中創建通用數組?](http://stackoverflow.com/questions/ 529085/how-to-create-a-generic-array-in-java) –

回答

1
  1. 有一個在第9行
  2. 不安全類型轉換不要混用數組和仿製藥:LinkedList<Integer>[]是難聞的氣味。 這就是真正的問題。你不能有通用類的數組。 Java根本不支持它。閱讀更多在Q: How to create a generic array in Java?
+0

那麼我應該使用集合嗎? – user3002315

+0

是的,你應該。 – naXa