让Guava ArrayListMultimap工作

时间:2014-10-29 16:25:51

标签: java guava

我对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();

这完美编译。但是,当我使用&#39; java Optimize&#39;:

运行脚本时,我又遇到了另一个错误

要了解如何在编译后正确运行代码,请参阅下面的答案评论。


这是我目前的测试代码:

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);
    }
}

1 个答案:

答案 0 :(得分:1)

该类的构造函数是私有的,您无法在类外看到它们。您必须使用创建地图的静态方法。

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

关于第二个错误,我没有看到任何带有这个名字的番石榴类,所以也许你拼错了它?