标签: map

轻松地按字母顺序获取地图中的键

在Go中,按字母顺序排列地图中按键的最简单方法是什么?这是我能做到的最短路:

package main

import "container/vector"
import "fmt"
import "sort"

func main() {
    m := map[string]string {"b":"15", "z":"123123", "x":"sdf", "a":"12"}
    var keys vector.StringVector;
    for k,_ := range ( m ) {
            keys.Push(k)
    }
    sort.Sort( &keys )
    fmt.Printf("%v\n", keys)
}
Run Code Online (Sandbox Code Playgroud)

sorting map go

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

"地图"是一个循环吗?

回答这个问题时,我意识到我不确定Perl是否map可以被视为循环?

一方面,它像循环一样嘎嘎叫/走路(O(n)工作,可以通过等效循环轻松地重写,并且符合常见定义="一系列不断重复的指令").

另一方面,map通常不在Perl的控制结构中列出,其中循环是其中的子集.例如http://en.wikipedia.org/wiki/Perl_control_structures#Loops

所以,我正在寻找的是一个正式的理由来确信一方与另一方.到目前为止,前者(它是一个循环)对我来说听起来更有说服力,但我对我从未在Perl循环列表中提到的"map"这一事实感到困扰.

perl loops map semantics

39
推荐指数
7
解决办法
5070
查看次数

Java的LinkedHashMap是否维护密钥的顺序?

调用LinkedHashMap.keySet()时,返回的Set的顺序是否与添加键的顺序相同?

java map set linkedhashmap

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

为什么Java不附带CopyOnWriteMap?

JDK中附带了CopyOnWrite*用于实现SetList,但没有对Map和我常常感叹这个事实.我知道有其他的集合实现有它们,但如果一个标准出货将是很好的.这似乎是一个明显的遗漏,我想知道它是否有充分的理由.任何人都知道为什么这被遗漏了?

java collections concurrency map concurrenthashmap

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

将JSONObject转换为Map

我有JSONObject一些属性,我想转换成一个Map<String, Object>

有什么东西我可以在json.org上使用或者ObjectMapper

java json map jsonobject

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

使用函数指针的STL映射

我开发了一个具有许多内置函数的脚本引擎,所以为了调用任何函数,我的代码只是进入一个if .. else if .. else if检查名称的墙,但我想开发一个更有效的解决方案.

我应该使用带字符串的hashmap作为键和指针作为值吗?我怎么能用STL地图呢?

编辑:我想到的另一点:当然使用map会强制编译器不要内联函数,但是我的低效方法没有因函数调用的必要性而产生任何开销,它只是执行代码.

所以我想知道函数调用产生的开销是否会比拥有if..else链更好...否则我可以通过在运行时检查字符来最小化比较次数(将更长但更快).

c++ stl function-pointers map

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

将键作为字符串映射并将值作为列表在Groovy中映射

任何人都可以向我指出一个如何Map在Groovy中使用a的一个例子,它有一个Stringas键和一个List值?

groovy map

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

C++中的简单字典

将一些代码从Python转移到C++.

BASEPAIRS = { "T": "A", "A": "T", "G": "C", "C": "G" }
Run Code Online (Sandbox Code Playgroud)

思维导图可能有点矫枉过正?你会用什么?

c++ dictionary map

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

指针作为地图C++ STL中的键

我有一个问题,当在地图中用作键时,如何处理指向自定义对象的指针.更具体地说,如果我定义

std::map< CustomClass*, int > foo;
Run Code Online (Sandbox Code Playgroud)

默认的C++实现是否可以处理这些指针?或者我是否需要定义自定义比较器函数来处理它?通常,使用指向对象的指针作为键是一种好习惯吗?

c++ pointers stl map

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

获取无效操作:mymap ["title"](类型interface {}不支持索引)在尝试索引地图时

我有一个地图中的数据,我想按键索引到地图以获取值.

mdi, err := page.Metadata()
fmt.Println(mdi["title"])
Run Code Online (Sandbox Code Playgroud)

但是我一直收到错误消息invalid operation: mdi["title"] (type interface {} does not support indexing).我很困惑,因为数据是一个地图,我应该能够索引它以获得值.如果类型不清楚,我也尝试将值转换为字符串:

title, ok := mdi["title"].(string)
checkOk(ok)
fmt.Println(title)
Run Code Online (Sandbox Code Playgroud)

但是,我得到了相同的错误消息.我究竟做错了什么?

map go

38
推荐指数
1
解决办法
3万
查看次数