标签: map

Freemarker:如何使用枚举作为键来迭代Map

以下代码不起作用,因为Freemarker似乎将[]中的表达式的值转换为String,然后将其用作键,这不是实际预期的.

准备模板模型:

Map<MyEnum, Object> myMap;
myMap.put(MyEnum.FOO, "Foo");
myMap.put(MyEnum.BAR, "Bar");
templateModel.put("myMap", myMap);
Run Code Online (Sandbox Code Playgroud)

my.ftl:

<#list myMap?keys as key>
    <#assign value = myMap[key]>
    <li>${key} = ${value}</li>
</#list>
Run Code Online (Sandbox Code Playgroud)

Freemarker文档中,它描述了如何访问Enum本身,但我没有找到任何关于如何使用Enum作为键从哈希值中获取值的信息.

谢谢.

java enums freemarker key map

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

c ++通过引用将映射传递给函数

如何将mapby 传递reference给函数?Visual Studio 2010给了我一个unresolved externals错误.目前,我有以下简化代码:

void function1(){
    map<int, int> * my_map = new map<int, int>(); 
    function2(*my_map); 
}

void function2(map<int, int> &temp_map){
    //do stuff with the map
}
Run Code Online (Sandbox Code Playgroud)

这里有类似问题的几个答案,但是他们使用typedef并添加std::到定义的开头,但我真的不确定原因.

int ComputerPlayer::getBestMoves(){
    //will return the pit number of the best possible move. 

    //map to hold pit numbers and rankings for each possible pit number.
    //map<pitNumber, rank> only adds pit numbers to map if they have seeds in them.

    std::map<int, int> possiblePits; //map …
Run Code Online (Sandbox Code Playgroud)

c++ map pass-by-reference

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

如何检查Map中的键是否以给定的String值开头

我正在寻找一种方法:

myMap.containsKeyStartingWith("abc"); // returns true if there's a key starting with "abc" e.g. "abcd"
Run Code Online (Sandbox Code Playgroud)

要么

MapUtils.containsKeyStartingWith(myMap, "abc"); // same
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人知道这样做的简单方法

谢谢

java string map

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

对象在scala中不是值错误

在尝试在Scala中创建映射时,我收到以下错误消息:对象映射不是值

我正在使用的代码如下:

val myStringMap =  Map[String, String]("first" -> "A", "second" -> "B", "third" -> "C")
Run Code Online (Sandbox Code Playgroud)

我很困惑为什么我不能创建这个地图,因为在查看Scala文档之后,在我看来我的代码的语法是正确的.

scala object map

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

C++ 11初始化地图

我正在尝试使用C++ 11语法初始化STL映射,但这似乎不起作用.初始化后,当我尝试访问该元素时,它会尝试调用Foo的私有构造函数.我错过了什么?如果我使用它,它的工作原理.我想知道我是否可以使用operator []来访问初始值...

#include <map>
#include <string>

class Foo{
public:
    int a, b;
    Foo(int a_, int b_){
        a = a_;
        b = b_;
    }

private:
    Foo(){};
};


int main(){

    std::map<std::string, Foo> myMap = { {"1", Foo(10,5)}, {"2", Foo(5,10)} };
    int b  = myMap["1"].b;    // it tries to call private constructor of Foo.
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ map c++11

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

单个对象的Ruby map()

我正在寻找一种在Ruby中"映射"单个项目的方法.

我想调用这个函数并传递一个块,该对象将被生成块,然后块的结果将返回给调用者.究竟是什么地图,但对于单个元素.

动机是有时你会生成仅用于构造其他东西的对象.然后不再需要原始对象.将转换放入块中并消除临时值会很好.

作为一个人为的例子,让我们假设我想创建一个表示月/年组合的整数.对于今天的日期,代码看起来像:

day = Date.today
month_number = day.year * 100 + day.month
Run Code Online (Sandbox Code Playgroud)

如果我可以这样做,我真的很喜欢它:

month_number = Date.today.some_function { |d| d.year * 100 + d.month }
Run Code Online (Sandbox Code Playgroud)

但我不知道'some_function'是什么(或者它是否存在).

如果有更多的Ruby方式来处理这样的事情,我会全神贯注.我知道猴子修补类,但我希望处理那些更短暂的情况.

ruby map

13
推荐指数
3
解决办法
3877
查看次数

ManyToMany(带有附加列)使用@ElementCollection和java.util.Map?

我正在尝试优化我的@Entity课程.让我们来看一个User <-> Group关系的常见情况.我还想存储建立关系的日期.表格布局:

 USER      GROUP_USER      GROUP
------    ------------    -------
 id        user_id         id
 name      group_id        name
           createdAt
Run Code Online (Sandbox Code Playgroud)

有以下3个类:

  1. User@OneToMany List<GroupUser>
  2. GroupUser@ManyToOne User@ManyToOne Group
  3. Group@OneToMany List<GroupUser>

它有效,但它很常见的常见用例.例如:给我所有组User user:

List<Group> groups;
for(GroupUser gu : user.getGroupUsers) {
    groups.add(gu.getGroup());
}
Run Code Online (Sandbox Code Playgroud)

然后我想到了使用a的Map想法.所以我创建了以下3个类:

@Entity
class User {
   @Column(name="id")
   UUID id;

   @Column(name="name")
   String name;

   @ElementCollection
   @CollectionTable(name="Group_User")
   Map<Group, GroupUserRelationData> groups;
}

@Entity
class Group {
   @Column(name="id")
   UUID id;

   @Column(name="name")
   String name;

   @ElementCollection …
Run Code Online (Sandbox Code Playgroud)

many-to-many hibernate jpa map

13
推荐指数
1
解决办法
3529
查看次数

Clojure应用地图和关键字参数销毁

考虑具有以下签名的函数:

(defn make-widget [& {:keys [x y] :or {x 10 y 20}}]
 ...)
Run Code Online (Sandbox Code Playgroud)

将地图传递给函数的最佳方法是什么,例如:

(make-widget {:x 100})
Run Code Online (Sandbox Code Playgroud)

要么

(make-widget {:y 200 :x 0})
Run Code Online (Sandbox Code Playgroud)

目前有什么我想到的是通过vec,flattenapply如:

(apply make-widget (flatten (vec ({:x 100}))
Run Code Online (Sandbox Code Playgroud)

我坚信有更好的方法可以做到这一点.你能考虑一下吗?

clojure map destruction keyword-argument

13
推荐指数
3
解决办法
2447
查看次数

使用std shared_ptr作为std :: map键

我在徘徊 - 我可以std::shared_ptr用作地图键吗?

更具体地说 - 指针的引用计数器可能与分配给映射时的值不同.

它会在地图中正确识别吗?

c++ key std map

13
推荐指数
2
解决办法
9759
查看次数

map/unordered_map:首选find()然后at()或者尝试at()catch out_of_range?

使用std::map或时std::unordered_map,访问可能不在容器中的元素的首选方法是什么?如果有人请求许可或要求宽恕吗?为什么?

那是,

if (mymap.find(key) != mymap.end()) {
    value = mymap.at(key);
    // do stuff
}
else {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

try {
    value = mymap.at(key);
    // do stuff
}
catch(const std::out_of_range& oor) {
    // do something else
}
Run Code Online (Sandbox Code Playgroud)

c++ unordered-map exception map

13
推荐指数
1
解决办法
3952
查看次数