- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Android 上使用 Java,我想将一个元素合并到具有自定义重映射功能的 map 中。
Map<String, MyObject> map = new HashMap<String, MyObject>();
// init map with some values here.... then
MyObject xMyObject = new MyObject(123); // init this instance of MyObject
map.merge("key", xMyObject, myRemappingFunction);
我知道 Android Java 没有 Java 8 对 lambda 表达式的支持。所以我认为我需要将 myRemappingFunction 实现为 BiFunction,但我在理解 BiFunction 接口(interface)声明以获取任何内容进行编译时遇到了麻烦。
public static BiFunction<? super MyObject,? super MyObject,? extends MyObject> remappingfunction()
有什么提示吗?
最佳答案
remappingFunction
是 BiFunction<? super MyObject, ? super MyObject,? extends MyObject>
的实现这是使用 apply
评估的您需要在此处定义的方法。
考虑合并整数属性 val
的示例(通过求和)你的 MyObject
如果它们被映射到同一个键,实现看起来像:
map.merge("key", xMyObject, new BiFunction<MyObject, MyObject, MyObject>() {
// this is the definition of what to do for two such values
@Override
public MyObject apply(MyObject myObject1, MyObject myObject2) {
return new MyObject(myObject1.getVal() + myObject2.getVal());
}
});
这也可以用 lambda 表示为:
map.merge("key", xMyObject,
(myObject1, myObject2) -> new MyObject(myObject1.getVal() + myObject2.getVal()));
关于java - android java Map与自定义BiFunction合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54568026/
我想链接 BiFunctions,就像下面代码示例中的方法 chainWanted 一样。 BiFunction 将 Function 作为 AndThen 的参数。是否有可能以某种方式链接 BiFu
我遇到了以下问题:一个方法应该接受一个带有 2 个参数的双函数 - 一个是类型 Collection另一个是T ;实际功能实际上可能是 Collection::remove或 Collection::
我有一张 map ,我想在其中数数。在 Java 8 之前,我必须在映射中为每个键放置一个零,然后才能像 map.put(key, map.get(key)+1). 从 Java 8 开始,我现在可以
这个(大大简化的)代码无法为我编译。不知道为什么。返回类型为 Entry?和 null对我来说似乎是一个有效的值(value)。 val foo = BiFunction, Entry?> { foo
我想编写一个接收 List l 的通用方法和两个 BiFunction f1, f2并返回以下表达式的结果: (a0 + a1) * (a2 + a3) *...*(a_{n-1} + an) * a
这个问题已经有答案了: Why doesn't Java 8's ToIntFunction extend Function (2 个回答) 已关闭 4 年前。 我想知道为什么ToDoubleBiFu
传统的函数式语言在列表的初始值和累加器方面考虑减少。在 Java 中,事情更复杂,因为它需要 BinaryOperator。 我想知道我们是否有更好的方法来编写这种函数: public JsonObj
我一直只使用 Java 6,现在正 catch 学习 Java 8 中的新功能。我在这里阅读了这篇文章: http://www.drdobbs.com/jvm/lambda-expressions-i
我正在尝试从列表中识别其前身大于其值的数字。 在 lambda 表达式中,如果我返回 b,它的行为符合预期,但如果我返回 a,它会给出错误的输出。 这两个返回语句有什么区别? List lis
在尝试使用方法引用时,遇到了可以将 concat 方法用作 BiFunction 的情况,据我所知,BiFunction apply 方法需要 2 个输入参数并产生一个结果。然而,concat 方法接
我对在 java (util) 函数中将方法引用作为参数传递有疑问。 我有两个功能 Function f1 = (val) -> { Output o = new Output();
这个问题在这里已经有了答案: How to print two lists together using Stream API java 8? (3 个答案) 关闭 7 年前。 我需要知道如何申请
我创建了一个 GenericFunction 类,它实现了 Function 和 BiFunction。但是无法编译。 public class GenericFunction implements
BiFunction 接口(interface)的定义包含一个方法 apply(T t, U u),它接受两个参数。但是,我不明白这个接口(interface)和方法的用途或目的。我们需要这个接口(i
我一直在尝试使用 Java 进行函数式编程。但是,当我在类中使用功能接口(interface)作为一级变量时,编译时无法识别我的变量。 我试图将其设为 main 中的局部变量,但收到了相同的结果。 我
我正在尝试将我的 Java 类转换为 Kotlin。这是Java代码: Observable.just("Stacey") .zipWith(Observable.just(6), (
我不明白为什么Map.compute()和Map.computeIfPresent()拿BiFunction参数以及Map.computeIfAbsent()一个Function : V comput
考虑以下简化的测试用例: import java.util.AbstractList; import java.util.Collection; import java.util.Iterator;
我不明白为什么Map.compute()和 Map.computeIfPresent()拿BiFunction参数以及 Map.computeIfAbsent()一个Function : V comp
在初始化 TreeMap、TreeSet 等集合时,我们可以添加自定义比较器。代码看起来像这样: Map map1 = new TreeMap<>(new Comparator() { pub
我是一名优秀的程序员,十分优秀!