标签: hashmap

Java中有SoftHashMap吗?

我知道有一个WeakHashMapin java.util,但由于它只使用了WeakReferences,只有这个Map引用,引用的对象将在下一个GC循环中丢失.因此,如果您想要缓存随机数据,这几乎是无用的,这很可能会再次被请求而不会在其余时间进行硬链接.最好的解决方案是使用SoftReferences代替的地图,但我没有在Java RT Package中找到一个.

java weak-references hashmap soft-references

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

正确的方法来初始化HashMap并且HashMap可以保存不同的值类型吗?

所以我HashMap在Java中有两个关于s的问题:

  1. 初始化一个正确的方法是HashMap什么?我认为在我的情况下使用可能是最好的:

    HashMap x = new HashMap();
    
    Run Code Online (Sandbox Code Playgroud)

    但Eclipse一直建议我使用:

    HashMap<something, something> map = new HashMap();
    
    Run Code Online (Sandbox Code Playgroud)

    哪个更好?

  2. 可以HashMap将不同类型的对象/数据类型保存为值吗?例如,这会工作并且没问题:

    map.put("one", 1);
    map.put("two", {1, 2});
    map.put("three", "hello");
    
    Run Code Online (Sandbox Code Playgroud)

    在第一个中put(),我想要int一个值作为值,在第二个中int[],第三个是字符串.用HashMaps 做Java可以吗?另外,可以将a HashMap作为值存储在一个HashMap

java standards hashmap

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

性能ConcurrentHashmap vs HashMap

如何将ConcurrentHashMap的性能与HashMap进行比较,特别是.get()操作(我特别感兴趣的是只有少数几个项目的情况,范围可能在0-5000之间)?

有没有理由不使用ConcurrentHashMap而不是HashMap?

(我知道不允许使用空值)

更新

只是为了澄清,显然在实际并发访问的情况下性能会受到影响,但是如何在没有并发访问的情况下比较性能呢?

java collections hashmap

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

将数据作为键存储在具有空/空值的HashMap中是一个好主意吗?

我最初写了一个ArrayList并存储了唯一值(用户名,即Strings).我后来需要使用它ArrayList来搜索用户是否存在.这是O(n)为了搜索.

我的技术负责人希望我将其更改为a HashMap并将用户名存储为数组中的键,并将值存储为空Strings.

所以,在Java中 -

hashmap.put("johndoe","");
Run Code Online (Sandbox Code Playgroud)

我可以通过运行来查看此用户是否存在 -

hashmap.containsKey("johndoe"); 
Run Code Online (Sandbox Code Playgroud)

这是O(1)对的?

我的主管说这是一种更有效的方法来实现这一点,这对我来说很有意义,但是将hash/empty作为值放在hashmap中并将其中的元素作为键存放似乎有点过时了.

我的问题是,这是一个好方法吗?效率节拍ArrayList#contains或一般的阵列搜索.有用.我担心的是,我没有看到其他人在搜索后这样做.我可能在某个地方错过了一个明显的问题,但我看不到它.

java arrays performance hashmap asymptotic-complexity

63
推荐指数
2
解决办法
4883
查看次数

C#等价于C++ map <string,double>

我想为不同的帐户保留一些总计.在C++中我会像这样使用STL:

map<string,double> accounts;

// Add some amounts to some accounts.
accounts["Fred"] += 4.56;
accounts["George"] += 1.00;
accounts["Fred"] += 1.00;

cout << "Fred owes me $" << accounts['Fred'] << endl;
Run Code Online (Sandbox Code Playgroud)

现在,我将如何在C#中做同样的事情?

c# arrays hashmap

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

Java中的ConcurrentHashMap和Hashtable

Java中的ConcurrentHashMap和Hashtable有什么区别?

哪个对线程应用程序更有效?

java hashtable hashmap

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

Java如何在HashMap或HashTable中订购商品?

我想知道Java如何在Map(HashMapHashtable)添加项目时订购项目.键是由哈希码,内存引用还是按分配优先级排序的?

这是因为我注意到它们中的相同对Map并不总是在同一个顺序中

java hashtable hashmap map hashcode

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

hash_map是STL的一部分吗?

快速问题... hash_map是STL的一部分吗?

c++ stl hashmap

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

可变的hashmap键是危险的做法吗?

将可变对象用作Hashmap键是不好的做法吗?当您尝试使用已修改足以更改其哈希码的密钥从Hashmap检索值时会发生什么?

例如,给定

class Key
{
    int a; //mutable field
    int b; //mutable field

    public int hashcode()
        return foo(a, b);
    // setters setA and setB omitted for brevity
}
Run Code Online (Sandbox Code Playgroud)

用代码

HashMap<Key, Value> map = new HashMap<Key, Value>();

Key key1 = new Key(0, 0);
map.put(key1, value1); // value1 is an instance of Value

key1.setA(5);
key1.setB(10);
Run Code Online (Sandbox Code Playgroud)

如果我们现在打电话map.get(key1)怎么办?这是安全的还是可取的?或者行为是否依赖于语言?

hash key hashmap mutable hashcode

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

在Java中反转HashMap键和值

这是一个简单的问题,我有一个简单的HashMap,我想要反转键和值.

HashMap<Character, String> myHashMap = new HashMap<Character, String>();
myHashMap.put('a', "test one");
myHashMap.put('b', "test two");
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的HashMap,我在其中放置了对立面.

HashMap<String, Character> reversedHashMap = new HashMap<String, Character>();
e.g. Keys "test one" & "test two" and values 'a' & 'b'.
Run Code Online (Sandbox Code Playgroud)

java hashmap

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