请帮我实现一个适用于Java 7中.map
类/接口的List
函数。我不能使用Java 8或外部库的任何功能。这需要类似于Scala在其实现中的函数,并且如果可能的话返回值。 (也许不可能)。
这是一个与所谓的“重复”不同的问题,因为它要求完全不同的东西。我试图找到这个函数的实现或将一个放在一起的指针,没有运气。我在这里问过,并没有运气实施给出的建议或代码。有人说,这是一个“微不足道”的功能,然而,它却逃避了我。
答案 0 :(得分:0)
要在Java 7中执行groupBy,您可以执行以下操作。
Map<K, List<V>> map = new HashMap<>();
for(V v : charges) {
K k = v.getCC();
List<V> values = map.get(k);
if (values == null)
map.put(k, values = new ArrayList<>());
values.add(v);
}
当然,这在Java 8中要容易得多。
答案 1 :(得分:0)
针对不同问题的不同答案。
问题是我如何用Java编写List.map()实现?
在Java 7中你会使用一个循环,你会在该循环中放置将出现在映射(或过滤器或flatMap)中的代码
e.g。在Java 8中你可能会写。
content-type
在Java 7中,您可以将List<String> words = ..
List<String> allLower = words.stream()
.map(s -> s.toLowerCase())
.collect(Collectors.toList());
放入循环中。
toLowerCase