2012-03-01 82 views
0

我在決定如何表示某個問題時遇到了相當多的問題。基本上,我需要一個從args[1]給定數字的列表/向量。他們中的每一個將從0直到一些args[2]Java數據結構表示

我需要制定一個算法,從第一個元素中搜索所有可能的參數組合。

舉個例子:

1 -> 3 5 
2 -> 1 3 4 5 
3 -> 2 
4 -> 2 5 1 
5 -> 1 3 4 

從這個例子中,我將不得不產生的系統的全部組合,就像從1你可以去3或5等和無法回去過同樣的迷你路徑,所以我猜我必須找出一些遞歸的方式來全面搜索所有路徑。

我的第一個嘗試是爲每個元素使用ArrayList創建一個1到5的向量,但是我正在使用列表初始化和訪問值時出現問題。

for (int i=0; i < total; i++) { 
    matrix[i] = new ArrayList<int>(total); 
} 

for (int i=0; i < total_paths; i++) { 
    matrix[Integer.parseInt(args[i])].add(Integer.parseInt(args[i])); 
} 

歡迎任何建議。

+0

這是功課?如果是這樣,請標記爲這樣。初始化和訪問值的實際問題是什麼? – DNA 2012-03-01 21:48:26

+0

它說它需要一個數組,但找到一個Vector。但是我想我需要一個n-ary樹來解決這個問題。 java中沒有任何它的實現嗎?如果沒有猜測,我將不得不爲它做一個類 – d0pe 2012-03-01 22:02:05

+0

向我們展示'matrix'的聲明,然後 - 聽起來像那是不正確的...並且在您向我們展示的代碼中沒有Vector。我們需要看到更多。哦,並且將Vector和ArrayList混合在相同的代碼中有點奇怪...只是使用ArrayList – DNA 2012-03-01 22:05:35

回答

0

您不能有ArrayList<int>;只有一個ArrayList<Integer>。但是,在大多數情況下,Java會自動在intInteger之間進行轉換。

0

您不能有ArrayList<int> - 它必須是ArrayList<Integer>

列表只能存儲對象,如Integer,String等。在Java中,int是一個原始類型,而不是真正的Object。

你的第二個代碼塊將歸結爲:

matrix[1].add(1); 

(例如 - 相同值作爲數組索引列表條目) - 就是你的意思?這是不完全清楚你是如何通過的價值...