小编Ste*_*eve的帖子

树中的第一个元素变为空?番石榴树基地

所以我遇到了一个Guava TreeBasedTable的问题(如果你不熟悉,它是一棵基于一对键访问其元素的树),这在过去的一周里一直是一个难以理解的问题.我会尽力解释,删除多余的代码:

TreeBasedTable<RowValue, Data, Result> results = TreeBasedTable.create();    
for (Data d : data.getData()) {
            for (Operation o: data.getOperations()) {
                Result r = o.calculate(...);      
                    results.put(r.rowValue, d, r);
    }
}
Run Code Online (Sandbox Code Playgroud)

基本上,我迭代一些我拥有的数据,做一些计算,并将结果粘在表中.但奇怪的是,当我尝试访问元素时.如果我只是按如下方式迭代它们:

for(Result r : results.values()){
    System.out.println(r);
}
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,如果我尝试按如下方式访问它们:

for(RowValue row : results.rowKeySet()){
    for(Data d : results.columnKeySet()){
        System.out.println(results.get(row, d));
    }
}
Run Code Online (Sandbox Code Playgroud)

第一个元素以某种方式为null.但是,如果树的大小为1,则可以正常工作.可能是树木有什么东西在这里,我不理解?很抱歉这个问题很长,我希望很清楚.

:: EDIT ::传递给树的第一个值始终为非null.但是当树到达大小3时,它将从非null变为null.对不起,如果不清楚我的问题是什么.根据要求,这是实际密码的实际代码:

public void createResults(Options options,MeasuredData data,ArrayList methods){

private TreeBasedTable<MethodDescriptor, Compound, Result> results = TreeBasedTable.create();

for (Compound c : data.getCompounds()) {
    for (Method method : methods) {
        ArrayList<Result> calcResults = …
Run Code Online (Sandbox Code Playgroud)

java tree guava data-structures

3
推荐指数
1
解决办法
892
查看次数

在Groovy中拆分XML

我有一个看起来像这样的XML.

<?xml version="1.0" encoding="UTF-8"?>
<header>
<row>
 <item1>stuff</item1>
 <item2>stuff</item2>
</row>
<row>
 <item1>stuff</item1>
 <item2>stuff</item2>
</row>
...
</header>
Run Code Online (Sandbox Code Playgroud)

我想读这个

def doc = new XmlSlurper().parseText(message)
Run Code Online (Sandbox Code Playgroud)

然后输出每个"row"元素作为单独的消息.例如:

<header>
<row1>
     <item1>stuff</item1>
     <item2>stuff</item2>
</row1>
</header>
Run Code Online (Sandbox Code Playgroud)

在Groovy中执行此操作的正确方法是什么?我应该使用XSLT还是过于复杂的东西?

xml xslt groovy

3
推荐指数
1
解决办法
256
查看次数

Eclipse高亮显示匹配括号

我看到很多有关匹配括号的文章,但是对括号的热爱不多。在Eclipse中,如何使匹配的括号突出显示?我正在使用Java和Groovy。

eclipse

3
推荐指数
1
解决办法
2760
查看次数

在switch case /转换ifs to switch语句中有多个值

我有一个很大的Ifs列表,我想把它改成一个switch语句.目前它看起来像这样:

if(x == 1){
    ...
}
if(x == 2){
    ...
}
if(myArray.contains(x)){
    ...
}
Run Code Online (Sandbox Code Playgroud)

实际上它比这长一点,但是如果在示例中让我感到困惑的是第三个 - 如何改变它以使其在交换机中工作,或者甚至可能?

java switch-statement

2
推荐指数
1
解决办法
2万
查看次数

KornShell(ksh)有Do ... While循环吗?

我在我的KornShell(ksh)脚本中有一个循环,我想要至少执行一次,我想要一种优雅的方式来做,但是当我发现很多关于如何编写while循环的东西时,似乎没有做任何事情......在那里循环.

我正在做的是从配置文件中读取逗号分隔的文件列表并处理它们.如果文件列表为空,那么我想处理目录中的所有文件.

有什么好办法呢?

编辑:这是我目前的情况.我抓取文件名,然后从字符串中删除它以进行下一次传递.如果Files列表为空,我退出循环.但是,如果列表开头为空,我希望它仍然运行一次.

  while [[ -n "${FILES%%,*}" ]]; do
       FILE="${FILES%%,*}"                             
       FILES="${FILES#*,}"
  done
Run Code Online (Sandbox Code Playgroud)

unix shell scripting ksh

2
推荐指数
1
解决办法
2万
查看次数

使用AntBuilder在Groovy中压缩文件/目录

我正在尝试使用AntBuilder在Groovy中压缩文件和目录。我有以下代码:

def ant = new AntBuilder()
ant.zip(basedir: "./Testing", destfile:"${file}.zip",includes:file.name)
Run Code Online (Sandbox Code Playgroud)

这将压缩文件“ blah.txt”,而不压缩文件“ New Text Document.txt”。我认为问题是空间。我尝试了以下方法:

ant.zip(basedir: "./Testing", destfile:"${file}.zip",includes:"${file.name}")
ant.zip(basedir: "./Testing", destfile:"${file}.zip",includes:"\"${file.name}\"")
Run Code Online (Sandbox Code Playgroud)

以上均未解决问题。我正在使用Ant,因为它将压缩目录,并且我在工作中无法访问org.apache.commons.io.compression。

ant groovy antbuilder

2
推荐指数
1
解决办法
4397
查看次数

JavaFX Listview观察地图

我有一个HashMap。我想在ListView中显示键。

麻烦的是,ListView.setItems()想要一个ObservableList,而我所拥有的只是一个keySet()。

如何获得ListView来观察Map中的键,而又不做一些笨拙的事情,例如维护两个匹配的数据结构?

java listview dictionary javafx observers

2
推荐指数
1
解决办法
2552
查看次数

SQL筛选器空列

我有一个查询

select *
from tableName
where x='3'
Run Code Online (Sandbox Code Playgroud)

这给了我一些结果,但是我不想看到任何列,其中每一行都是Null。有没有一种简单的方法可以将其过滤掉?

sql sql-server

1
推荐指数
1
解决办法
957
查看次数

如何计算文件的SHA512?

我有一个文件,我需要计算它的 SHA512 值。我发现很多网站都提供为我做这件事,但我想用 Java 以编程方式来做(好吧,Groovy,但它是一样的)。

对于那些好奇的人,我正在运行 Oracle 的 TZUpdater 工具并将其指向本地文件。这需要一个包含该文件的 SHA512 值的文件。 http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html

java hash groovy sha512

1
推荐指数
2
解决办法
6178
查看次数

黄瓜中的日期对象

我有这样的黄瓜stepdef

Given the date of <date>
When blah blah
Then x y and z
Examples:
|2015-01-01|
|2045-01-01|
Run Code Online (Sandbox Code Playgroud)

当我从中生成stepdefs时,我得到@Given("^the date of (\\d+)-(\\d+)-(\\d+)$") And该方法是使用三个整数作为参数生成的。如何告诉Cucumber将其视为Java.Time LocalDate?有没有办法创建一个Cucumber会理解的映射器?或者至少,有一种方法可以将该日期对象视为字符串而不是三个数字?

java cucumber gherkin

1
推荐指数
2
解决办法
7294
查看次数