小编dim*_*414的帖子

在Google Guava中打印HashBasedTable的所有键和值

我使用以下代码创建并填充GuavaTable:

Table<String, String, Integer> table = HashBasedTable.create();
table.put("A", "B", 1);
table.put("A", "C", 2);
table.put("B", "D", 3);
Run Code Online (Sandbox Code Playgroud)

我想知道如何迭代表并打印每行的键和值?所以,期望的输出是:

A B 1
A C 2
B D 3
Run Code Online (Sandbox Code Playgroud)

java guava

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

存储在JVM中的Object的实例变量在哪里?

Java中的对象的实例变量是存储在JVM的堆栈或方法区域中的吗?

另外,我们为多个线程设置了不同的实例变量吗?

如果它存储在方法区域中,实例变量与静态变量存储的不同之处是什么?

java jvm heap-memory jvm-hotspot

14
推荐指数
3
解决办法
3万
查看次数

如何在bash中使用'readarray'来读取文件中的行到2D数组中

假设我有一个文本文件'demo.txt',其中包含一个表格,如下所示:

1 2 3    
4 5 6    
7 8 9    
Run Code Online (Sandbox Code Playgroud)

现在,我想在bash中使用'readarray'命令分别读取每一行,所以我写道:

readarray myarray < demo.txt   
Run Code Online (Sandbox Code Playgroud)

问题是它不起作用.如果我尝试打印'myarray':

echo $myarray
Run Code Online (Sandbox Code Playgroud)

我明白了:

1 2 3
Run Code Online (Sandbox Code Playgroud)

另外,如果我写:

echo ${myarray[1]}
Run Code Online (Sandbox Code Playgroud)

我明白了:

4 5 6
Run Code Online (Sandbox Code Playgroud)

代替:

2
Run Code Online (Sandbox Code Playgroud)

正如我所料.这是为什么?如何分别访问每一行并在该行中访问每个成员?

arrays bash

14
推荐指数
3
解决办法
5万
查看次数

改变摇摆窗口的底层背景颜色

正如这里所讨论的,当在Vista中调整Swing应用程序的大小(和Windows 7,这就是我正在使用的)时,右下角会出现黑色背景,而Swing的重绘会赶上更改.

使用其他应用程序(Windows资源管理器(本机),Firefox(C++?)和Eclipse(Java))我注意到它们都有同样的问题 - 与上面链接中的人说的相反 - 但它们通过以下方式将问题最小化具有灰色填充颜色,与Swing中出现的黑色相比,其视觉震撼性要小得多.

我想知道是否有一些方法可以改变这一点,以便Swing的行为与其他应用程序一样?我尝试设置JFrame的背景颜色,但无济于事.

其他信息 乔纳斯发现(见下面的信息性答案)这是JFrames的一个问题,但不是AWT框架 - 也许这会帮助有人解决这个问题.

java windows swing paint jframe

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

Java - 初始化HashMaps的HashMap

我是java的新手,通过创建一个简单的NaiveBayes分类器来练习.我仍然是对象实例化的新手,并想知道如何初始化HashMaps的HashMap.在将新观察值插入分类器时,我可以为给定类中的未见特征名创建新的HashMap,但是我是否需要初始化?

import java.util.HashMap;

public class NaiveBayes {

    private HashMap<String, Integer> class_counts;
    private HashMap<String, HashMap<String, Integer>> class_feature_counts;

    public NaiveBayes() {
        class_counts = new HashMap<String, Integer>();
        // do I need to initialize class_feature_counts?
    }

    public void insert() {
        // todo
        // I think I can create new hashmaps on the fly here for class_feature_counts
    }

    public String classify() {
        // stub 
        return "";
    }

    // Naive Scoring:
    // p( c | f_1, ... f_n) =~ p(c) * p(f_1|c) ... * p(f_n|c)
    private …
Run Code Online (Sandbox Code Playgroud)

java oop initialization

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

生成非连续样本

我们如何有效地生成k随机和非连续样本[1,...,N]

非期望的示例(N=10, k=4): 2,3,8,10

这不是一个理想的例子,因为23是连续的.

期望的例子(N=10, k=4): 2,6,8,10

这是一个很好的例子,因为每对样本之间的差异大于 1

random matlab

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

流式迭代器的最简单方法

假设您想要流式迭代器的元素; 让我们使用一个具体的例子Scanner来实现Iterator<String>.

给出一个Iterator,说:

// Scanner implements Iterator<String>
Iterator<String> scanner = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

从中创建的选项Stream<String>很笨重:

StreamSupport.stream(
  Spliterators.spliteratorUnknownSize(scanner, Spliterator.ORDERED), false);
Run Code Online (Sandbox Code Playgroud)

或稍微简洁,但迟钝:

 StreamSupport.stream(
  ((Iterable<String>) () -> new Scanner(System.in)).spliterator(), false);
Run Code Online (Sandbox Code Playgroud)

在JDK中的某个地方是否有一个返回Stream<T>给定的工厂方法Iterator<T>

java iterator iterable java-8 java-stream

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

单线程应用程序中的同步方法是否更慢?

在过去的几分钟里,我一直在为自己辩论,而且我看到了是和否的原因.这源于查看Java HashMap与Hashtable的答案,并看到有几个人说Hashtable实际上更慢.

在我看来,如果在单个线程中运行,同步方法应该与其非同步方法完全没有区别,因为同步操作不应该阻塞任何内容.也就是说,我认为编译器会以不同的方式处理这两种情况,这就是人们说同步速度较慢的原因.

并不是说它无论如何都是决定性的,但是我对HashMap和Hashtable进行了一些简单的测试,并且看到了速度上的差别.

java multithreading synchronization

11
推荐指数
2
解决办法
5177
查看次数

使用Java创建符号链接

我在创建Java目录的符号链接时遇到了麻烦.我正在使用Files类中的createSymbolicLink()方法:http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html

绝对路径:

  • 目标: /some/path/target
  • 链接: /some/path/xxx/linkname

我希望,在目录的链接/some/path/xxx/中创建的文件夹/some/path/target,而是从一个链接/some/path/xxx/linkname/some/path/xxx/target被创建.我只是无法弄清楚我做错了什么.

当我从中创建链接/some/path/linkname/some/path/target,一切都按预期工作.

任何帮助是极大的赞赏.

编辑:这是我的代码:

Path records = Paths.get(Properties.getProperty("records.path"));
Path recordsLink = Paths.get(Properties.getProperty("webserver.root") + System.getProperty("file.separator") + records.getFileName());
try {
    Files.createSymbolicLink(recordsLink, records);
} catch (IOException e) {
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

"records.path"和"webserver.root"都是相对路径.

实际上我刚刚找到了问题的解决方案:如果我这样做,它会起作用:

records = records.toAbsolutePath();
Run Code Online (Sandbox Code Playgroud)

我假设createSymbolicLink()将使用绝对路径来创建链接,这是错误的.

java symlink

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

在eclipse中运行Java app时如何避免glob扩展

我遇到了Eclipse运行配置的特殊行为,它似乎只是一个Windows问题.假设我有一个Java应用程序打印出命令行参数,如下所示:

public class WildCard {
    public static void main(String[] args) {
        for (String arg: args) {
            System.out.println(arg);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我使用可以由shell扩展的外卡提供参数,shell将展开它并将其提供给Java程序.这并不奇怪.所以,如果我在命令提示符下做

java WildCard test/*
Run Code Online (Sandbox Code Playgroud)

该程序将打印

test/foo.txt
test/bar.txt
Run Code Online (Sandbox Code Playgroud)

其中foo.txt和bar.txt是目录"test"中的文件.

如果我用引号括起通配符参数,可以防止Shell扩展;*nix上的单引号,以及Windows上的双引号.所以对于Windows,如果我在命令提示符下执行以下操作:

java WildCard "test/*"
Run Code Online (Sandbox Code Playgroud)

该程序现在将打印

test/*
Run Code Online (Sandbox Code Playgroud)

(没有扩张).

但是,我发现Eclipse运行启动器中的引用似乎没有效果,并且参数仍在扩展.如果我放

"test/*"
Run Code Online (Sandbox Code Playgroud)

在Eclipse运行启动程序的程序参数部分,并运行上面的类,我仍然得到

test/foo.txt
test/bar.txt
Run Code Online (Sandbox Code Playgroud)

换句话说,当程序实际运行时,双引号似乎丢失了.这似乎只发生在Windows上.

有没有办法在Windows上使用Eclipse运行启动器阻止glob扩展?

java eclipse shell wildcard expansion

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