簡體   English   中英

使番石榴ArrayListMultimap工作

[英]Getting Guava ArrayListMultimap to work

我是Java的新手,正在研究一種新的分析方法,以改善我當前的實現( https://stackoverflow.com/questions/26577172/inefficcient-optimally-deleting-2s-rows-and-columns-from -a-random-mod2 )。

我確定我想要一個多重地圖來處理我的數據集。 因此,我下載了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);
    }
}

該類的構造函數是私有的,您無法在類外部看到它們。 您必須使用創建地圖的靜態方法。

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

至於第二個錯誤,我看不到任何具有該名稱的Guava類,所以也許您拼錯了?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM