相关疑难解决方法(0)

创建arraylist的hashmap的最佳方法

我有一百万行.txt格式的数据.格式很简单.对于每一行:

user1,value1
user2,value2
user3,value3
user1,value4
...

你知道我的意思.对于每个用户,它可能会出现多次,或只出现一次(您永远不会知道).我需要找出每个用户的所有值.因为用户可能会随机出现,所以我使用了Hashmap来完成它.即:HashMap(key:String,value:ArrayList).但是要向arrayList添加数据,我必须经常使用HashMap get(key)来获取arrayList,为它添加值,然后将其放回HashMap.我觉得效率不高.有人知道更好的方法吗?

java collections arraylist hashmap data-structures

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

java8 map如何简单地将一些元素添加到列表值

我想用来Map<String, List<String>>记录一些东西,比如每个城市都有多少用户.

现在我的代码是

    Map<String, List<String>> map = new HashMap<>();
    if(map.get("city_1")==null){
        map.put("city_1", new ArrayList<>());
    }
    map.get("city_1").add("aaa");
Run Code Online (Sandbox Code Playgroud)

但我觉得这有点麻烦,我想要这个效果

    Map<String, List<String>> map = new HashMap<>();
    map.compute("city_1", (k,v)->v==null?new ArrayList<>():v.add("aaa"));
Run Code Online (Sandbox Code Playgroud)

但它有编译错误:

Type mismatch: cannot convert from boolean to List<String>
Run Code Online (Sandbox Code Playgroud)

那么有任何其他方式可以简化它吗?

java-8

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

标签 统计

arraylist ×1

collections ×1

data-structures ×1

hashmap ×1

java ×1

java-8 ×1