小编rog*_*ack的帖子

Java HashMap:如何通过索引获取密钥和值?

我试图使用HashMap将唯一的字符串映射到字符串ArrayList,如下所示:

HashMap<String, ArrayList<String>>
Run Code Online (Sandbox Code Playgroud)

基本上,我希望能够通过编号访问密钥,而不是使用密钥的名称.我希望能够访问所述密钥的值,迭代它.我想象的是这样的:

for(all keys in my hashmap) {
    for(int i=0; i < myhashmap.currentKey.getValue.size(); i++) {
        // do things with the hashmaps elements
    }
}
Run Code Online (Sandbox Code Playgroud)

是否有捷径可寻?

java iteration hashmap

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

在Amazon s3存储桶中添加文件夹

我想使用编码在我的amazon s3存储桶中添加Folder.你能告诉我如何实现这个目标吗?

amazon-s3

29
推荐指数
6
解决办法
6万
查看次数

Consistent String#hash仅基于字符串的内容

目标:将服务器处理的每个URL映射到0,1,2或3,尽可能均匀地分布.

虽然ruby的String#hash方法的文档说它将"根据字符串的长度和内容返回一个哈希",但这显然不是全部.给定字符串的散列在解释器的调用之间不一致:

$ irb
ruby-1.9.2-p180 :001 > "foo".hash
 => 360517580588231756 
ruby-1.9.2-p180 :002 > ^D

$ irb
ruby-1.9.2-p180 :001 > "foo".hash
 => -2716152678666510148 
Run Code Online (Sandbox Code Playgroud)

这意味着特定字符串的哈希值可能在服务器之间不同.Rails在String#hash内部使用URL路径映射到四个资产主机之一(如果应用程序的asset_host 配置如此),但由于跨机器的不一致性,此功能的效率低得多; 不同的服务器可能会将相同的URL映射到不同的资产主机,从而降低了缓存的效率,使天空变得模糊,过早地冷却了茶杯,从而破坏了其他优秀程序员的声誉.

你能否建议一个备用哈希函数,它可以有效,快速地在典型应用程序的URL空间中分配哈希值,最好是生成Fixnum的哈希函数,最后,我想将它映射到四个资产主机之一?

ruby hash ruby-on-rails-3

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

如何用mockito模拟一个构建器

我有一个建设者:

class Builder{
     private String name;
     private String address;
     public Builder setName(String name){
         this.name = name;
         return this;
    }
     public Builder setAddress(String address){
         this.address = address;
         return this;
    }

}
Run Code Online (Sandbox Code Playgroud)

在mockito中模拟构建器会使每个方法都为null.因此,有一种简单的方法可以让构建器在每次函数调用时返回自己,而不会使用模拟每个函数本身when().thenReturn.

java unit-testing mockito

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

在Red Hat Linux上更改JENKINS_HOME?

我用这个程序来安装Jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

启动并运行后,我发现服务器上的/ var/lib/jenkins分区非常小.我想移动它,但我不想更改它运行的用户.我是Linux新手,我很难过.如何将其移动到我的Home/Public文件夹?"Jenkins"用户似乎没有Home文件夹.它在启动时作为守护进程运行,所以我不知道在哪里配置这些设置.我可以为Jenkins用户创建一个主文件夹吗?怎么样?

我读了这篇文章:

https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins

但不明白如何"设置新的詹金斯家".我已经使用了export命令,并重新启动了服务,但旧的路径仍显示在Manage Jenkins屏幕中.

我已经在stackoverflow上阅读了2-3个类似的问题,但对我来说总是有一个很大的缺失.在哪里找到永久更改路径的文件?

redhat jenkins

27
推荐指数
4
解决办法
7万
查看次数

Java静态初始化顺序

我试图找出初始化发生的顺序,或者说是为什么初始化按此顺序发生的原因.鉴于代码:

public class Main {

    {
        System.out.printf("NON-STATIC BLOCK\n");
    }

    static{
        System.out.printf("STATIC BLOCK\n");
    }

    public static Main m = new Main();

    public Main(){
        System.out.printf("MAIN CONSTRUCTOR\n");
    }

    public static void main(String... args) {
        //Main m = new Main();
        System.out.printf("MAIN METHOD\n");

    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

STATIC BLOCK

NON-STATIC BLOCK

MAIN CONSTRUCTOR

MAIN METHOD
Run Code Online (Sandbox Code Playgroud)

但是,m在初始化块之前移动声明会产生:

NON-STATIC BLOCK

MAIN CONSTRUCTOR

STATIC BLOCK

MAIN METHOD
Run Code Online (Sandbox Code Playgroud)

我完全不知道为什么它会按此顺序发生.此外,如果我static在声明中删除了关键字m,则init块和构造函数都不会触发.任何人都可以帮我解决这个问题吗?

java

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

IntelliJ配置目录

有没有办法配置IntelliJ IDEA(版本8.0.1)存储所有配置文件的目录?

默认情况下,这些文件存储在%home%\.IntelliJIdea80 ...(或.IdeaIC12等)中,但我想定义另一个位置...

谢谢.

configuration intellij-idea

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

JAVA SAX解析器拆分调用字符()

我正在做一个解析XML中的一些数据的项目.

例如,XML是

<abc>abcdefghijklmno</abc>
Run Code Online (Sandbox Code Playgroud)

我需要解析"abcdefghijkmnlp".

但是当我测试我的解析时,我发现了一个大问题:

public class parser{
    private boolean hasABC = false;


        //Constructor HERE
        ......................
        ......................

     @Override
     public void startDocument () throws SAXException{  
     }

     @Override
     public void endDocument () throws SAXException{  
     }

     @Override
     public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException{  
          if ("abc".equalsIgnoreCase(localName)) {
              this.hasABC = true;
          }
      }
      @Override
      public void endElement(String namespaceURI, String localName, String qName) throws SAXException{
            if ("abc".equalsIgnoreCase(localName)) {
                 this.hasABC = false;
            }
       }
       @Override
       public void characters(char ch[], int start, …
Run Code Online (Sandbox Code Playgroud)

java xml

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

LC_COLLATE和LC_CTYPE支持postgreSQL中的utf-8

从这个链接http://wiki.postgresql.org/wiki/Todo:Collat​​ehttp://www.postgresql.org/docs/9.1/static/collat​​ion.html.这让我感到困惑.

他们说,utf-8支持取决于操作系统的能力,它的每一个之间输精管LC_COLLATELC_CTYPE选项.

当我使用创建数据库时pdAdmin III,有3个选项,C, Posix and English_United States.1252.有什么不同C, Posix and English_United States.1252

我希望使用所有支持的语言,也就是说unicode utf-8,这似乎不是一个选项.

我必须为选择的值LC_COLLATE,并LC_CTYPE用于创建支持数据库utf-8PostgreSQL 9

postgresql

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

Hibernate为每个查询生成不同的SQL

我刚刚在探查器下测试了我的应用程序,发现sql字符串占用了大约30%的内存!这很奇怪.

应用程序内存中存储了很多像这样的字符串.这是由hibernate生成的SQL查询,请注意不同的数字和尾随下划线:

select avatardata0_.Id as Id4305_0_,...... where avatardata0_.Id=? for update
select avatardata0_.Id as Id4347_0_,...... where avatardata0_.Id=? for update
Run Code Online (Sandbox Code Playgroud)

这是我无法理解的部分.为什么hibernate必须为每个查询生成具有不同标识符的不同sql字符串,如" Id4305_0_ "?为什么不能为所有相同的查询使用一个查询字符串?这是绕过查询缓存的某种技巧吗?

如果有人能形容我为什么会这样,以及如何避免这种资源浪费,我将不胜感激.

UPDATE

好.我找到了.假设内存泄漏我错了,这是我的错.Hibernate按预期工作.

我的应用程序在10个线程中创建了121(!)SessionFactories,它们生成了大约2300个SingleTableEntityPersisters实例.每个SingleTableEntityPersister生成大约15个具有不同标识符的SQL查询.Hibernate被迫生成大约345,000个不同的SQL查询.一切都很好,没什么奇怪的:)

java sql performance memory-leaks hibernate

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