请帮我实现一个.map
函数,该函数在Java 7的List
类/接口上工作。我无法使用Java 8或外部库的任何功能。如果可能的话,这需要与Scala的函数类似,并且返回值。 (也许不可能)。Java .map()实现
这是一个与所谓的“重复”不同的问题,因为它要求完全不同的东西。我试图找到这个函数的实现或者把它放在一起,但是没有运气。我在这里问过,没有实施建议或代码。据说这是一个“微不足道”的功能,然而,它逃避了我。
请帮我实现一个.map
函数,该函数在Java 7的List
类/接口上工作。我无法使用Java 8或外部库的任何功能。如果可能的话,这需要与Scala的函数类似,并且返回值。 (也许不可能)。Java .map()实现
这是一个与所谓的“重复”不同的问题,因为它要求完全不同的东西。我试图找到这个函数的实现或者把它放在一起,但是没有运气。我在这里问过,没有实施建议或代码。据说这是一个“微不足道”的功能,然而,它逃避了我。
要在Java 7中做一个组,您可以做类似这样的事情。
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
@ m482所以如果你已经有了一个实现,那是什么问题?或者你完全改变了这个问题? Stream.map()是微不足道的,但只有在流和lambda的上下文中才有意义,所以我不确定你在问什么。 –
问题是如何在Java中编写List.map()实现?谢谢。 – m482
不同的答案不同的问题要容易得多。
问题是我该如何在Java中编写List.map()实现?
在Java 7你可以使用一个循环,你会放置该循环内,其将出现在映射的代码(或过滤器,或flatMap)
例如在Java 8中,你可能会写。
List<String> words = ..
List<String> allLower = words.stream()
.map(s -> s.toLowerCase())
.collect(Collectors.toList());
在Java 7中,您会将toLowerCase
放入循环中。
List<String> words = ..
List<String> allLower = new ArrayList<>(words.size());
for (String word : words)
allLower.add(word.toLowerCase()); // map(x -> ?) goes here.
您需要Java-8 –
确实,您已经评价过!再次问同样的问题真的不是问题所在:http://stackoverflow.com/questions/35180851/scala-to-java-functional-programming –