标签: hashmap

从HashMap检索的值的顺序是插入顺序

我正在尝试找出可以检索HashMap中的值的顺序.下面是代码片段.

import java.util.HashMap;

public class HashMapExample {

   public static void main(String[] args) {
       HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
       hashmap.put(1, "apple" );
       hashmap.put(2, "lemon" );
       hashmap.put(3, "orange" );
       hashmap.put(4, "banana" );
       hashmap.put(5, "litchi" );
       hashmap.put(6, "mango" );
       hashmap.put(7, "papaya" );

       System.out.println(hashmap.size());

       for (String key : hashmap.values()) {
           System.out.println(key);
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

输出:

7
apple
lemon
orange
banana
litchi
mango
papaya
Run Code Online (Sandbox Code Playgroud)

值按插入顺序打印.一般来说这是真的吗?我期待值以任意顺序打印.这是使用Java 6.

java hashmap

58
推荐指数
4
解决办法
8万
查看次数

散列键/值作为数组

我找不到javascript相当于php array_keys()/array_values()

对于不熟悉php的人给出以下js哈希:

var myHash = {"apples": 3, "oranges": 4, "bananas": 42}
Run Code Online (Sandbox Code Playgroud)

我如何获得一系列键,即

["apples", "oranges", "bananas"]
Run Code Online (Sandbox Code Playgroud)

与值相同的问题,即

[3, 4, 42]
Run Code Online (Sandbox Code Playgroud)

可以使用jQuery.

javascript hashmap

57
推荐指数
4
解决办法
18万
查看次数

Java HashMap中的冲突解决方案

Java HashMap使用put方法插入K/V对HashMap.假设我已经使用了put方法,现在HashMap<Integer, Integer>有一个条目key为10和value17.

如果我在其中插入10,20,HashMap由于相同的密钥10,它只是由于碰撞而用此条目替换前一个条目.

如果密钥碰撞HashMap将旧的K/V对替换为新的K/V对.

所以我的问题是什么时候HashMap使用链接冲突解决技术?

为什么它没有形成一个linkedlist带键为10,值为17,20?

java hashmap

57
推荐指数
4
解决办法
9万
查看次数

Java:通过HashMap迭代,哪个更有效?

给定以下代码,使用两种替代方法来迭代它,
这两种方法之间是否有任何性能差异?

        Map<String, Integer> map = new HashMap<String, Integer>();
        //populate map

        //alt. #1
        for (String key : map.keySet())
        {
            Integer value = map.get(key);
            //use key and value
        }

        //alt. #2
        for (Map.Entry<String, Integer> entry : map.entrySet())
        {
            String key = entry.getKey();
            Integer value = entry.getValue();
            //use key and value
        }
Run Code Online (Sandbox Code Playgroud)

我倾向于认为这alt. #2是迭代整个过程的更有效方法map(但我可能是错的)

java iteration performance hashmap map

56
推荐指数
5
解决办法
7万
查看次数

Java中HashMap和Map的区别..?

可能重复:
Java - HashMap与Map对象

我想知道HashMapMapjava 之间的区别.. ??

java hashmap

56
推荐指数
4
解决办法
12万
查看次数

HashMaps和Null值?

如何将空值传递给HashMap?
以下代码段适用于填写的选项:

HashMap<String, String> options = new HashMap<String, String>();  
options.put("name", "value");
Person person = sample.searchPerson(options);  
System.out.println(Person.getResult().get(o).get(Id));    
Run Code Online (Sandbox Code Playgroud)

那么问题是必须输入选项和/或传递空值的方法?
我尝试了以下代码但没有成功:

options.put(null, null);  
Person person = sample.searchPerson(null);    

options.put(" ", " ");  
Person person = sample.searchPerson(null);    

options.put("name", " ");  
Person person = sample.searchPerson(null);  

options.put();  
Person person = sample.searchPerson();    
Run Code Online (Sandbox Code Playgroud)

java null hashmap hashcode

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

如何从哈希映射返回键列表?

我目前正在尝试制作一个将动词与西班牙语结合的程序.我创建了一个哈希表,其中包含一个键和一个对象动词的实例.键是一个具有动词不定式形式的字符串(例如,"hablar").这是我到目前为止的哈希映射代码:

public class VerbHashMap {

    HashMap<String, Verb> verbHashMap;

    public VerbHashMap(){
        verbHashMap = new HashMap();
    }   
}
Run Code Online (Sandbox Code Playgroud)

HashMap中的每个动词的键都基于动词的不定式形式.例如,字符串"hablar"是西班牙语动词的关键.类Verb有一个名为getInfinitive()的方法,它返回一个包含动词的不定式形式的字符串.

public boolean addVerb(Verb verb){
    if(verbHashMap.containsValue(verb.getInfinitive()){
        return false;
    }
    else{
        verbHashMap.put(verb.getInfinitive(), verb);
        return true;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是创建一个按字母顺序返回哈希映射中所有动词列表的方法的最有效方法是什么?我应该让方法返回一个ArrayList,其中包含哈希映射中所有对象的键吗?或者有更有效的方法来解决这个问题吗?

java hashmap

55
推荐指数
5
解决办法
15万
查看次数

如何创建HashMap文字?

如何在Rust中创建HashMap文字?在Python中,我可以这样做:

hashmap = {
   'element0': {
       'name': 'My New Element',
       'childs': {
           'child0': {
               'name': 'Child For Element 0',
               'childs': {
                   ...
               }
           }
       }
   },
   ...
}
Run Code Online (Sandbox Code Playgroud)

在Go中这样:

type Node struct {
    name string
    childs map[string]Node
}

hashmap := map[string]Node {
    "element0": Node{
        "My New Element",
        map[string]Node {
            'child0': Node{
                "Child For Element 0",
                map[string]Node {}
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

hashmap rust

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

哈希如何有o(1)搜索时间?

当我们使用a HashTable来存储数据时,据说搜索需要o(1)时间.我很困惑,任何人都可以解释一下吗?

java hashmap

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

在Java中处理ResultSet的有效方法

我在Java中使用ResultSet,并且不确定如何正确关闭它.我正在考虑使用ResultSet来构造HashMap,然后关闭ResultSet.这种HashMap技术是否有效,或者是否有更有效的方法来处理这种情况?我需要键和值,所以使用HashMap似乎是一个合乎逻辑的选择.

如果使用HashMap是最有效的方法,我如何在我的代码中构造和使用HashMap?

这是我尝试过的:

public HashMap resultSetToHashMap(ResultSet rs) throws SQLException {

  ResultSetMetaData md = rs.getMetaData();
  int columns = md.getColumnCount();
  HashMap row = new HashMap();
  while (rs.next()) {
     for (int i = 1; i <= columns; i++) {
       row.put(md.getColumnName(i), rs.getObject(i));
     }
  }
  return row;
}
Run Code Online (Sandbox Code Playgroud)

java resultset hashmap sqlresultsetmapping

53
推荐指数
4
解决办法
11万
查看次数