2014-10-29 76 views
1

我對java比較陌生,並且正在研究一種新的分析方法來改進我當前的實現(https://stackoverflow.com/questions/26577172/inefficcient-optimally-deleting-2s-rows-and-columns-from-a-random-mod2)。讓番石榴ArrayListMultimap正常工作

我確定我想要一個multimap來處理我的數據集。因此,我下載了Guava並將〜2MB文件放入一個目錄中。我使用Multimap之或ArrayListMultimap用編好的程序編譯:

javac -classpath C:\mywork\guava-18.0.jar myfile.java 

編輯:在user2336315的建議,我改變了代碼:

ArrayListMultimap<String, int[]> combinations = ArrayListMultimap.create(); 

這完全編譯。但是,當我使用'java Optimize'運行腳本時,出現另一個錯誤:

要了解如何在編譯後正確運行代碼,請參閱下面的答案註釋。


這是我目前的測試代碼:

import java.util.Random; 
import com.google.common.collect.ArrayListMultimap;  

class Determine { 
    public static int[][] rando() { 
     // Various lines of code to product a random matrix 
    } 
} 

class Search { 
    public static void finalize(int[][] a) { 
     int bluejay = a.length; 
     int minimum = 1; 

     ArrayListMultimap<String, int[]> combinations = ArrayListMultimap.create(); 
     for (int x = 0; x < bluejay - minimum + 1; x++) { 
      int y = 0; 
      while (y < 5) { 
       int[] rows = new int[x + 1]; 
       rows[0] = 1; 
       combinations.put(Integer.toString(x), rows); 
       y += 1;     
      } 
      System.out.println(combinations); 
     } 
    } 
} 

public class Optimize { 
    public static void main(String[] args) { 
     int[][] matrix = Determine.rando(); 
     Search.finalize(matrix); 
    } 
} 
+0

'javac -classpath' yikes,這裏有IDE。順便說一句'ListMultiMap '是一個'Map >',是數組部分故意的列表嗎? – zapl 2014-10-29 16:42:21

+0

是的。因爲我會採取一組K元素的組合。地圖中的每個元素對應於(k選擇n)且n <= k。接下來,每個(k選擇n)將包含一系列組合(每個組合由一個列表或K的一個子集表示)。然而,由於我的算法完成後的性質,這不會爆炸。 – user3834916 2014-10-29 16:51:00

+0

好吧,「我只有3周左右進入java」和'ListMultiMap '聽起來不太可能:D – zapl 2014-10-29 16:54:07

回答

1

類的構造函數是私有的,你看不到它們的類之外。你必須使用創建地圖的靜態方法。

ArrayListMultimap<String, int[]> combinations = ArrayListMultimap.create(); 

至於第二個錯誤,我沒有看到有這個名字的任何番石榴類,所以也許你拼錯了它?

+0

工作。但是,現在我得到另一個錯誤:java.lang.NoClassDefFoundError。由ClassNotFoundException引起:com.google.common.collect.ArrayListMultimap。有關URL ClassLoaders的各種細節等。我正在研究爲什麼現在,但我正在寫這個快速地把它弄出來。 – user3834916 2014-10-29 16:39:01

+0

@ user3834916您是否將庫添加到構建路徑? – user2336315 2014-10-29 16:39:23

+0

您能否詳細說明一下?我根據自己的知識(更新後的代碼)正確導入了類,並將類路徑指向了正確的目錄。我需要做其他事嗎? – user3834916 2014-10-29 16:45:00