Java .map()实现

时间:2016-02-06 18:29:06

标签: java scala functional-programming

请帮我实现一个适用于Java 7中.map类/接口的List函数。我不能使用Java 8或外部库的任何功能。这需要类似于Scala在其实现中的函数,并且如果可能的话返回值。 (也许不可能)。

这是一个与所谓的“重复”不同的问题,因为它要求完全不同的东西。我试图找到这个函数的实现或将一个放在一起的指针,没有运气。我在这里问过,并没有运气实施给出的建议或代码。有人说,这是一个“微不足道”的功能,然而,它却逃避了我。

2 个答案:

答案 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