使用rJava在R中获取哈希映射

gap*_*ppy 4 java r

我有一个带有数值的普通hashmap,并希望检索其内容,理想情况下是在列表中(但可以解决).

可以吗?

Mar*_*ark 5

试试这个:

library(rJava)
.jinit()
# create a hash map
hm<-.jnew("java/util/HashMap")
# using jrcall instead of jcall, since jrcall uses reflection to get types 
.jrcall(hm,"put","one", "1")
.jrcall(hm,"put","two","2")
.jrcall(hm,"put","three", "3")

# convert to R list
keySet<-.jrcall(hm,"keySet")
an_iter<-.jrcall(keySet,"iterator")
aList <- list()
while(.jrcall(an_iter,"hasNext")){
  key <- .jrcall(an_iter,"next");
  aList[[key]] <- .jrcall(hm,"get",key)
}
Run Code Online (Sandbox Code Playgroud)

请注意,使用.jrcall的效率低于.jcall.但是对于我的生活,我无法使用.jcall获得方法签名.我想知道它是否与缺乏仿制药有关.