Java 让Guava ArrayListMultimap发挥作用
我对java比较陌生,正在研究一种新的分析方法来改进()的当前实现 我已经确定需要一个多重映射来处理我的数据集。因此,我下载了Guava并将~2MB文件放入一个目录中。我使用Multimap或ArrayListMultimap编译程序时使用:Java 让Guava ArrayListMultimap发挥作用,java,guava,Java,Guava,我对java比较陌生,正在研究一种新的分析方法来改进()的当前实现 我已经确定需要一个多重映射来处理我的数据集。因此,我下载了Guava并将~2MB文件放入一个目录中。我使用Multimap或ArrayListMultimap编译程序时使用: javac -classpath C:\mywork\guava-18.0.jar myfile.java 编辑:根据user2336315的建议,我将代码更改为: ArrayListMultimap<String, int[]> comb
javac -classpath C:\mywork\guava-18.0.jar myfile.java
编辑:根据user2336315的建议,我将代码更改为:
ArrayListMultimap<String, int[]> combinations = ArrayListMultimap.create();
ArrayListMultimap组合=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);
}
}
import java.util.Random;
导入com.google.common.collect.ArrayListMultimap;
阶级决定{
公共静态int[]rando(){
//生成随机矩阵的各种代码行
}
}
类搜索{
公共静态void finalize(int[]a){
int bluejay=a.长度;
int最小值=1;
ArrayListMultimap组合=ArrayListMultimap.create();
对于(int x=0;x
类的构造函数是私有的,您无法在类外看到它们。必须使用创建贴图的静态方法
ArrayListMultimap<String, int[]> combinations = ArrayListMultimap.create();
ArrayListMultimap组合=ArrayListMultimap.create();
至于第二个错误,我没有看到任何具有此名称的番石榴类,所以可能是您错卖了?有效。但是,现在我得到了另一个错误:java.lang.NoClassDefFoundError。由ClassNotFoundException引起:com.google.common.collect.ArrayListMultimap。关于URL类加载器等的各种详细信息。我现在正在研究原因,但我写这篇文章是为了快速发布。@user3834916您是否已将库添加到生成路径中?能否请您详细说明一下?据我所知,我正确地导入了类(更新的代码),并将类路径定向到正确的目录。是否需要执行其他操作?@user3834916您需要为
javac
和java
提供-classpath
参数。库没有被编译到结果中,所以您需要在运行时再次告诉java它们在哪里。啊,我想可能是这样的。但是,我如何实现这一点?键入“java-classpath C:\mywork\guava-18.0.jar Optimize”无效。它找不到我的主要方法。另外,你能推荐一个源代码让我更深入地了解这个过程吗?javac-classpath
yikes,这里有一些IDE。顺便说一句,ListMultiMap是一个映射,数组列表是故意的吗?是的。因为我将采用一组K元素的组合。map中的每个元素对应于(k choose n)和n Ok,“我对java只有大约3周的了解”,而且ListMultiMap
听起来不太可能:DI去年在python上了一个暑期班,这是我的第一个编程课程,它教会了我一些基础知识(这就是为什么我试图实现类似于字典的东西)。除此之外,我的大学java课程节奏非常快(不过还没有接近此材料的地方)————。但这是离题的:好吧,第二次考试快到了,可能已经有7周了。我的错!