茱莉亚有结构像hashmaps?

问题描述:

我是新来的茱莉亚!我刚刚从Java切换到茱莉亚,有人可以告诉我茱莉亚有hashmap结构吗?如果不是,那么我如何将一种类型映射到茱莉亚的另一种类型?茱莉亚有结构像hashmaps?

是的!它确实有。以下是如何创建和访问Julia内部的一个。

# Creating the Dict in Julia 
julia> hashmap = Dict("language"=>"julia","version"=>"0.6") 
     Dict{String,String} with 2 entries: 
      "language" => "julia" 
      "version" => "0.6" 

# To access individual keys 
julia> hashmap["language"] 
"julia" 

# To find the fields inside a dictionary 
julia> fieldnames(hashmap) 
8-element Array{Symbol,1}: 
:slots 
:keys 
:vals 
:ndel 
:count 
:age 
:idxfloor 
:maxprobe 

# To iterate over the hashmap 
julia> for i in hashmap 
      println(i) 
     end 
"language"=>"julia" 
"version"=>"0.6"  

Julia Dict被实现为散列映射。与Java一样,考虑接口与实现也很重要。

Associative是一种抽象类型,大致对应于Java中的Map;这些目的可通过他们的密钥索引,以获取相应的值:

value = associative[key] 

DictAssociative一个具体亚型,其为无序散列映射实现。

dict = Dict("a" => 1, "b" => 3) 
@show dict["a"] # dict["a"] = 1