我想创建一个像下面这样的地图-
Map<Pair<MyClass.a, MyClass.b>, MyClass>>.
我有一张物品清单-
List<MyClass>
这里Pair是一个类,已经在我的项目中,所以我想使用它。
我需要帮助从Java8流创建它。
我试过了:
ls.stream().collect(Collectors.toMap(new Pair(MyClass.a, MyClass.b), MyClass));
但我犯了个错误。我刚刚接触Java 8,正在努力学习它。
添加一个示例:
class Person {
String name ;
int age ;
// Some other variables
}
我有一个列表
在我的需求中,我需要一个key={name,age},使用pair类。
class Pair<T,U> {
Pair(T t, U u) {
this.t = t
this.u = u
}
// Overridden hashCode && equals methods
}
现在我想创建一个类似
map的地图
我收到一个编译器错误,上面写着“不是函数接口”。
我相信一定有办法通过Java8流和收集。
为了创建函数,必须使用lambda表达式。仅仅编写一个像new Pair(MyClass.a,MyClass.b)
这样的表达式是不够的,相反,您可以指定一个带有参数的函数,它将是一个Person
实例,即p-
对于
Map
创建操作,您必须决定想要什么。例如。,
Map<Pair<String, Integer>, List<Person>> map
= list.stream().collect(Collectors.groupingBy(p -> new Pair<>(p.name, p.age)));
将每个键映射到具有该名称/年龄组合的所有
Person
实例的列表。
对比之下
Map<Pair<String, Integer>, Person> map
= list.stream().collect(Collectors.toMap(p -> new Pair<>(p.name, p.age), p -> p));
将名称/年龄对映射到单个
Person
实例,但如果有多个实例具有相同的键,则会引发异常。您可以指定一个函数来解决此类冲突,例如:
Map<Pair<String, Integer>, Person> map = list.stream().collect(
Collectors.toMap(p -> new Pair<>(p.name, p.age), p -> p, (first, next) -> first));
将保持第一,而
Map<Pair<String, Integer>, Person> map = list.stream().collect(
Collectors.toMap(p -> new Pair<>(p.name, p.age), p -> p, (prev, last) -> last));
将覆盖上一次发生的事件,并以每个姓名/年龄组合的最后一个
Person
实例结束。
在Azure密钥库策略中,我想添加ADF。下面给出了命令(从管道执行)。但在创建后,它显示为“代表”文本的“复合身份”,它不起作用。当我手动将ADF添加到策略中时,它显示为'application',并且它可以工作。如何使powershell创建“应用程序”标识? 完整脚本
在我的项目中,有一个模型与另一个模型有关系(基数=“许多”):单位有许多组织。这种关系运行得很好! 因此,我试图(但没有成功)提出以下建议: 我得到了一个错误: 我必须这样做,因为在不止一个站点中有相同代码的组织,所以我会这样做,只是改变站点的uid默认值。 你知道我可以用另一种方法来表达这个观点吗?或者我在那个例子中犯了什么错误? 谢谢!
假设我想要一个复合键作为采购订单实体的street,city。 下面是我如何识别做这件事, 我想明白@AttributeOverrides注释到底是做什么的?即使我将colomn name更改为something STREET1,我仍然看到使用列名street创建的表。那么column=@column(name=“street”))在这里做什么。 另外,我可以将它作为PurchaseOrder类的
根据给定的私钥生成密钥对,并在保存后返回其ID。 调用: web3.shh.addPrivateKey(privateKey, [callback]) 参数: privateKey:String - 要导入的私钥,16进制字符串 callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个对象为返回结果 返回值: String - 成功时返回ID,失败则返回错误信息 示
问题内容: 我刚刚开始使用MongoDb,我注意到我有很多重复的记录,这些记录本来就是唯一的。我想知道如何对数据使用组合键,并且正在寻找有关如何创建它们的信息。最后,我使用Java来访问mongo和morphia作为我的ORM层,因此将您的答案中的内容包括在内是非常棒的。 Morphia:http : //code.google.com/p/morphia/ 问题答案: 您也可以将对象用于_id字