- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我必须实现方法 maxPricePerProductType
返回产品类型的最高出价,产品按字母顺序排序。没有出价的产品不予考虑。方法原型(prototype)为:
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return null;
}
我的课是
public class GroupHandling {
private Map<String, Group> groups = new HashMap<>();
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return null;
}
}
public class Group {
private String name;
String productType;
Map<String, Bid> bids = new HashMap<>();
public String getProductType() {
return productType;
}
}
public class Bid {
String name;
Group g;
int price;
public int getPrice() {
return price;
}
public String getProductType(){
return g.productType;
}
}
每个组都有兴趣购买某种类型的产品,并且在 map bids
中注册了该组必须购买的产品的选项。例如,Group G1
想要购买智能手机,他们有 3 个出价:B1、B2 和 B3。 B1 10,B2 15,B3 7。G2 也想买智能手机。它有2个出价。 B4 的成本为 5,B5 的成本为 20。所以我必须将 B1、B2、B3、B4 和 B5(因为它们都是同一产品类型的出价)添加到排序映射 B5 作为键,将 20 作为值。简而言之,我需要从每个组中获取出价,按产品类型对它们进行分组,然后将价格最高的那个添加到已排序的 map 中。这是我尝试做的:
public SortedMap<String, Integer> maxPricePerProductType() { //use toMap
return groups.values().stream().
flatMap(g -> g.bids.values().stream())
.
;
}
但我不知道如何继续,或者这部分是否正确。
最佳答案
这有点误导 private Map<String, Gruppo> groups = new HashMap<>();
和 Map<String, Bid> bids = new HashMap<>();
捕获。如果这些映射中的键是 B1, B2...
和 G1, G2...
- 实际名称,而不是你真的不需要它们 - 因为无论如何这些信息都存在于它们中。所以这些应该是List
如果还有别的东西,你可以使用:
SortedMap<String, Integer> result = groups
.values()
.stream()
.filter(g -> g.getBids() != null || !g.getBids().isEmpty())
.flatMap(g -> g.getBids().values().stream())
.collect(Collectors.groupingBy(b -> b.getGroup().getProductType(),
TreeMap::new,
Collectors.mapping(Bid::getPrice,
Collectors.collectingAndThen(Collectors.maxBy(Comparator.naturalOrder()), Optional::get))));
关于java - sortedMap 上的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44866021/
我是 Scala 新手。我想在 Scala 中创建一个包含两个可变 SortedMap 的类,一个按正常排序顺序(递增),一个按反向排序顺序(递减) class MyClass { var map
我有一个无序的 map : class O(val a: Int) Map[String, List[O]] 我想变成: SortedMap[String, SortedMap[Int, O]] 子
我是 Scala 的新手。 我正在使用 SortedMap在我的代码中,我想使用 mapValues 创建一个对值进行一些转换的新 map 。 而不是返回一个新的 SortedMap ,mapValu
给定一个 key k在 SortedMap 中,如何有效地找到最大的键 m小于或等于 k ,也是最小的键 n大于或等于 k .谢谢你。 最佳答案 查看 2.9.0 的源代码,下面的代码似乎是你能做的最
我想实现一个带有键和值的 sortedMap,以便可以通过提供一些子序列来搜索键。例如, map 包含 3 个条目: abcd -> obj1 def -> obj2 abccd -> obj3 对于
我确信这很简单,但出于某种原因我没有得到我想要的。 我有一个 SortedMap值,我想流式传输和过滤它并仅保存一些值。 例如: SortedMap input = new TreeMap<>
我有一个 SortedMap> .其中每个字符串都是一个带有可能答案和附加点的问题。 我如何使用这个 Map按位置打印问题(第一个,第二个,...) sampleArray[0] ? 最佳答案 遍历
可以使用 myMap.entrySet().iterator() 中的迭代器遍历 SortedMap。但是这个迭代器是否保留了已排序映射对象的顺序? SortedMap 接口(interface)没有
我需要一个有序映射,每个键都包含这些字段[srcAddr, dstAddr, srcPort, dstPort, protocol](这个对应一个流) 那么这个键包含一个值列表,每个值包含一些字段。例
我有以下方法在 map 中映射值: public static Map transformValues(Map input, Function function) { return inpu
我想要一个排序的映射如下: srcAddr, dstAddr, srcPort, dstPort, protocol as keys 和列表的值作为 每个键的 packetLength、timeArr
这就是我面临的问题,我正在尝试使用 Id 作为键并使用对象指针作为值来实现 HashMap。 在每个对象中,有几个整数,假设它们代表对象中定义的各种类别的投资金额。 但是,我希望能够对特定类别中的投资
我必须实现方法 maxPricePerProductType 返回产品类型的最高出价,产品按字母顺序排序。没有出价的产品不予考虑。方法原型(prototype)为: public SortedMap
正如我们所知,SortedMap 维护按键排序的条目。我在这个论坛上阅读了很多主题,看到了很多按值对 SortedMap 进行排序的示例。但是,正如您所知,当我将一个项目放入默认 SortedMap
我有一个 SortedMap (实现是一个 TreeMap ),看起来像这样: [ProjectOne] -> [ActivityOne,ActivityTwo,ActivityThree] [Pro
我有一个 SortedMap(特别是 TreeMap),我从中提取值。稍后,我需要获取第一个和最后一个值,因为它们在 SortedMap 中排序。 SortedMap.values() 返回一个 Co
我是 Java 的新手,正在学习集合。作为练习,我正在尝试使用自定义比较器对 SortedMap 进行排序。我希望能够按平均成绩降序对学生 SortedMap 进行排序。 SortedMap stu
我有一个 SortedMap>我想删除 List如果List是空的,我也会删除 Long键。 在 Java 8 中是否有一个优雅的解决方案? 通过这段代码,我得到一个 ConcurrentModifi
我在 Java 中工作并且有一个 SortedMap,它是作为 ConcurrentSkipListMap 实现的。我需要从 SortedMap 的头部删除一些项目——即所有键小于某个阈值的项目。实际
我想知道有什么更好的方法可以在大型 SortedMap 中找到大于输入值的第一个值,而不是在下面的示例中循环遍历所有值。或者如果 SortedMap 是用于此的最佳结构。 这可以使用 google-c
我是一名优秀的程序员,十分优秀!