Java 将表guava用于hashbasedTable
我计划使用表guava实现3D散列图。我下载了,我可以导入文件。我的要求如下Java 将表guava用于hashbasedTable,java,hash,hashmap,guava,Java,Hash,Hashmap,Guava,我计划使用表guava实现3D散列图。我下载了,我可以导入文件。我的要求如下 Table<String,String,Integer> twoDimensionalFileMap= new HashBasedTable<String,String,Integer>(); 我手上有下面的文件,我只需要相应地聚合文件,这将在下一步中显示 A100|B100|3 A100|C100|2 A100|B100|5 下面是聚合部分 A100|B100|8 A100|C100|2
Table<String,String,Integer> twoDimensionalFileMap= new HashBasedTable<String,String,Integer>();
我手上有下面的文件,我只需要相应地聚合文件,这将在下一步中显示
A100|B100|3
A100|C100|2
A100|B100|5
下面是聚合部分
A100|B100|8
A100|C100|2
我试着使用下面的
Table<String,String,Integer> twoDimensionalFileMap= new HashBasedTable<String,String,Integer>();
表twoDimensionalFileMap=新的HashBasedTable();
但这让我犯了个错误,我只想知道两件事
HashBasedTable()的构造函数中要传递的参数
map.put(key,value)
。在类似的意义上,你们能告诉我如何插入这个表的值吗这里是番石榴
HashBasedTable.create()
factory方法。(不带参数,或带有expectedRows
和ExpectedCellsError
)table.put(“A100”,“B100”,5)
,就像地图一样,除了有两个键
R - the type of the table row keys
C - the type of the table column keys
V - the type of the mapped values
你的声明是正确的。为了使用它,应简单如下:
Table<String,String,Integer> table = HashBasedTable.create();
table.put("r1","c1",20);
System.out.println(table.get("r1","c1"));
Table Table=HashBasedTable.create();
表1.put(“r1”、“c1”、20);
System.out.println(table.get(“r1”、“c1”);
使用以下内容的示例:
@测试
公共无效番石榴表示例(){
随机r=新随机数(3000);
Table Table=HashBasedTable.create();
表.推杆(1,“肮脏50”,新训练(r.nextLong());
表.推杆(1,“Fran”,新训练(r.nextLong());
表.推杆(1,“七”,新训练(r.nextLong());
表.推杆(1,“Murph”,新训练(r.nextLong());
表2.put(1,“Ryan”,新训练(r.nextLong());
表.推杆(1,“金刚”,新训练(r.nextLong());
表1.put(2,“肮脏的50”,新训练(r.nextLong());
表.推杆(2,“Fran”,新训练(r.nextLong());
表.推杆(2,“七”,新训练(r.nextLong());
表.推杆(2,“Murph”,新训练(r.nextLong());
表1.put(2,“Ryan”,新训练(r.nextLong());
表.推杆(2,“金刚”,新训练(r.nextLong());
//对于每行键
for(整型键:table.rowKeySet()){
logger.info(“人:+键);
对于(条目行:table.row(key).entrySet()){
logger.info(“训练名称:“+row.getKey()+”表示“+row.getValue().getElapsedTime()”的运行时间);
}
}
}
感谢各位提供的信息。。。我确实试过了,效果很好。。。。我只是想知道我们是否能够根据value参数对这个表进行降序排序。。。。有没有办法做到这一点。。。如果是这样,请与我分享。。这对我来说真的很有用。。,。谢天谢地,如果使用基本构造函数失败了,这可能是一个次要的代码味道,但我知道有时候事情必须这样做。但是,至少,所说的构造函数应该受到保护
,这样天真的用户就会被迫使用工厂。@user949300构造函数是私有的,这没什么错。有了受保护的类,您可以扩展HashBasedTable
,如果有一天实现发生变化,您的类可能会崩溃。因为这样的子类似乎没有什么好处,所以最好禁止它。当然,将类设置为final也可以,但是工厂(与ctor不同)可以节省键入类型参数的时间。private也可以。我的意思是,如果构造函数在基本情况下不能真正工作,那么它就不应该是公共的。@maaartinus“但是工厂可以节省您键入类型参数的时间”-这不再是自Java 7以来的有效原因