我希望从java中的地图列表中获取最小值。我正在使用平面地图,流和min的组合来做到这一点,并且没有得到预期的结果。这是代码公共类测试明 {
public static class TestHolder{
public static Map<String,Integer> getValues(){
Map<String,Integer> map = new HashMap<>();
map.put("a",1);
map.put("b",3);
map.put("c",2);
return map;
}
}
public static void main(String[] args) {
List<Map<String, Integer>> l = new ArrayList<>();
l.add(TestHolder.getValues());
l.add(TestHolder.getValues());
l.add(TestHolder.getValues());
// Getting min
int min = l.stream().map((m)->m.values()).flatMap((v)->v.stream()).min(Integer::min).get();
System.out.println(min);
}
}
输出为:2
当然,我期望的输出是1。尝试一些调试表明它提供的输出值与“c”对应。i、 如果地图看起来像
[a->2 , b->3, c->1]
那么我得到的输出是1。问题是为什么它不是按值排序,而是按键排序,并给我提供意外的输出。
您可以使用< code>mapToInt()函数来转换< code >流
int min = l.stream()
.map(Map::values)
.flatMap(Collection::stream)
.mapToInt(Integer::intValue)
.min().orElse(defaultMinValue);
流::min
期望有符合比较器
合约的东西。但是整数::min
不会这样做,它只是返回其两个输入中的最小值。您应该改用整数::比较
。
我正在使用JUnit和Mockito库来测试我的应用程序。问题是,当我在代码下面执行时,值在运行时没有返回空列表,并且测试失败。理想情况下,当get执行时,它应该返回空列表 我热切期待着支持。有没有人能帮我一下,如何通过这个测试用例???。如何通过Mockito使第8行的控件通过测试用例??? 请假设,下面两个类没有真实的代码,我们只有二进制文件作为JAR文件,我们不能修改下面的代码....我附上
为了澄清所使用的输入是100,用于投资金额,利率为5%(在该程序中,取5/100,然后/12=0.00417),在这种情况下,投资的持续时间为6个月。因此,在任何利息累积之前的第0个月,没有利息,所以这只是投资的投入金额(100)。然后,在第一个月,它现在运行正常((100*i)*(i interest());或在或情况下((100*1)*(10.00417))=100.417 但当我到了第二个月
任何暗示都会很明显。
我正在对我的一个服务进行Mockito单元测试,我试图模拟它,但无法返回所需的对象。我的代码片段如下所示: 现在,通过了测试用例,但是失败了,因为。 我很困惑,我不是刚刚模拟了返回一个的行为吗?我做了一些研究,发现了这篇文章:Mockito when/then not returning expected value,我想知道如何使用“doreturn()...when()”定义嘲笑行为,但仍然没
下面的代码生成一个 空指针异常 由于此人在本例中没有任何,因此我想将返回到 尝试添加仍然会产生相同的错误。 这应该如何处理?如果条件,有没有办法处理同一行代码而不是再检查一行?
新的云功能和承诺。我尝试在不同的位置添加承诺,但仍然在日志中得到消息。第一,我不确定我应该在哪里添加承诺,第二,我是否应该什么也不回。在调用match(如果条件满足,则创建channel)之后,我不需要执行另一个函数。虽然触发onCreate会有多个用户,所以我想确保每次执行一个用户。 编辑1-我尝试将事务更改为使用await,这样它将只在事务之后更改UserLife节点。得到这两个警告。1)应在