标签: map

HashMap,LinkedHashMap和TreeMap之间的区别

是什么区别HashMap,LinkedHashMapTreeMap在Java中?我没有看到输出有任何差异,因为所有三个都有keySetvalues.什么是Hashtables?

Map m1 = new HashMap();
m1.put("map", "HashMap");
m1.put("schildt", "java2");
m1.put("mathew", "Hyden");
m1.put("schildt", "java2s");
print(m1.keySet()); 
print(m1.values()); 

SortedMap sm = new TreeMap();
sm.put("map", "TreeMap");
sm.put("schildt", "java2");
sm.put("mathew", "Hyden");
sm.put("schildt", "java2s");
print(sm.keySet()); 
print(sm.values());

LinkedHashMap lm = new LinkedHashMap();
lm.put("map", "LinkedHashMap");
lm.put("schildt", "java2");
lm.put("mathew", "Hyden");
lm.put("schildt", "java2s");
print(lm.keySet()); 
print(lm.values());
Run Code Online (Sandbox Code Playgroud)

java map

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

如何在Java中将Map转换为List?

将a转换Map<key,value>为a 的最佳方法是List<value>什么?只是迭代所有值并将它们插入列表中或者我忽略了什么?

java collections list map

643
推荐指数
10
解决办法
68万
查看次数

Ruby中的map和collect之间的区别?

我用谷歌搜索了这个并得到了不完整/矛盾的观点 - 在Ruby/Rails中对一个数组做一个map和做一个实际上有什么区别collect吗?

这些文档似乎没有任何暗示,但是方法或性能可能存在差异吗?

ruby arrays map collect

414
推荐指数
5
解决办法
11万
查看次数

Map.get(Object key)不是(完全)泛型的原因是什么

什么是决定不具有的接口完全通用的get方法背后的原因java.util.Map<K, V>.

为了澄清这个问题,方法的签名是

V get(Object key)

代替

V get(K key)

我想知道为什么(同样的事情remove, containsKey, containsValue).

java generics collections map

395
推荐指数
8
解决办法
5万
查看次数

Ruby中的"map"方法做了什么?

我是编程新手.有人可以解释一下.map会做什么:

params = (0...param_count).map
Run Code Online (Sandbox Code Playgroud)

ruby enumeration map range

243
推荐指数
4
解决办法
31万
查看次数

确定map是否包含键的值?

确定STL映射是否包含给定键的值的最佳方法是什么?

#include <map>

using namespace std;

struct Bar
{
    int i;
};

int main()
{
    map<int, Bar> m;
    Bar b = {0};
    Bar b1 = {1};

    m[0] = b;
    m[1] = b1;

    //Bar b2 = m[2];
    map<int, Bar>::iterator iter = m.find(2);
    Bar b3 = iter->second;

}
Run Code Online (Sandbox Code Playgroud)

在调试器中检查它,它看起来就像iter垃圾数据.

如果我取消注释这一行:

Bar b2 = m[2]
Run Code Online (Sandbox Code Playgroud)

调试器显示的b2{i = 0}.(我猜这意味着使用未定义的索引会返回一个包含所有空/未初始化值的结构?)

这些方法都不是很好.我真正喜欢的是这样的界面:

bool getValue(int key, Bar& out)
{
    if (map contains value for key)
    {
        out = map[key];
        return true; …
Run Code Online (Sandbox Code Playgroud)

c++ stl map

228
推荐指数
7
解决办法
32万
查看次数

在STL映射中,使用map :: insert比[]更好吗?

不久前,我与一位同事讨论了如何在STL 地图中插入值.我更喜欢 map[key] = value; 因为它感觉自然而且阅读清晰,而他更喜欢 map.insert(std::make_pair(key, value))

我刚刚问他,我们都不记得插入更好的原因,但我确信这不仅仅是一种风格偏好,而是有一个技术原因,如效率.在SGI STL参考只是说"严格地说,这个成员函数是不必要的:它的存在只是为了方便."

任何人都可以告诉我这个理由,还是我只是梦想有一个?

c++ stl stdmap map

199
推荐指数
8
解决办法
16万
查看次数

合并两个地图并将相同键值相加的最佳方法是什么?

val map1 = Map(1 -> 9 , 2 -> 20)
val map2 = Map(1 -> 100, 3 -> 300)
Run Code Online (Sandbox Code Playgroud)

我想合并它们,并将相同键的值相加.结果将是:

Map(2->20, 1->109, 3->300)
Run Code Online (Sandbox Code Playgroud)

现在我有2个解决方案:

val list = map1.toList ++ map2.toList
val merged = list.groupBy ( _._1) .map { case (k,v) => k -> v.map(_._2).sum }
Run Code Online (Sandbox Code Playgroud)

val merged = (map1 /: map2) { case (map, (k,v)) =>
    map + ( k -> (v + map.getOrElse(k, 0)) )
}
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的解决方案.

merge scala map

169
推荐指数
9
解决办法
8万
查看次数

如何在迭代时从地图中删除?

如何在迭代时从地图中删除?喜欢:

std::map<K, V> map;
for(auto i : map)
    if(needs_removing(i))
        // remove it from the map
Run Code Online (Sandbox Code Playgroud)

如果我使用map.erase它将使迭代器无效

c++ map c++11

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

Scala将Collection转换为按键映射的最佳方法是什么?

如果我有一个集合c型的T,有一个属性pT(类型P,说的),什么是做一个最好的办法地图通过提取键

val c: Collection[T]
val m: Map[P, T]
Run Code Online (Sandbox Code Playgroud)

一种方法如下:

m = new HashMap[P, T]
c foreach { t => m add (t.getP, t) }
Run Code Online (Sandbox Code Playgroud)

但现在我需要一个可变的地图.有没有更好的方法来做到这一点,以便它在一行,我最终得到一个不可变的地图?(显然我可以将上面的内容变成一个简单的库实用程序,就像在Java中一样,但我怀疑在Scala中没有必要)

scala map scala-collections

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

标签 统计

map ×10

c++ ×3

java ×3

collections ×2

ruby ×2

scala ×2

stl ×2

arrays ×1

c++11 ×1

collect ×1

enumeration ×1

generics ×1

list ×1

merge ×1

range ×1

scala-collections ×1

stdmap ×1