Java中的Ruby #map或#collect的等价物?

可以说我有一个数组movie = get_movies()

在ruby中,我经常这样做
movies.map {|电影| movie.poster_image_url}或者其他一些.

我能做些什么在Java中类似?同样优雅,简洁,可读.我知道有很多方法可以做到这一点,但如果有一个很好的方法来做到这一点,这将使我不想使用Groovy或让我知道的东西.我确信Java有一些很棒的方法来做这样的事情.

到目前为止,这是我的Java代码,使用的是https://github.com/holgerbrandl/themoviedbapi/版的TheMovieDB API Java包装器.

        TmdbMovies movies = new TmdbApi(BuildConfig.MOVIEDB_API_KEY).getMovies();
        MovieResultsPage results = movies.getPopularMovieList("en", 1);
        // The following line is RubyJava and needs to your help!
        results.getResults().map {|e| e.getPosterPath() };
        // or ... more RubyJava results.getResults().map(&:getPosterPath()); 

如果您了解了很多Java,但不熟悉ruby,那么可以在Ruby中更多地了解#map / #collection. http://ruby-doc.org/core-1.9.3/Array.html#method-i-collect

到目前为止,我已经看到从最近的一些快速浏览回答这个问题的最近的事情… https://planet.jboss.org/post/java_developers_should_learn_ruby

这些看起来也很接近. http://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html

这么多选择:Functional Programming in Java

这也是Android … Android开箱即用的任何好东西都能让这种编程变得简单吗?这是一种函数式编程风格,对吧?

在收到回复之后,我得到了很好的见解,例如:’for循环没有任何问题’和(基本上)’语法不是一切’,我决定不会尝试让我的所有Java看起来像Ruby!我读了这篇文章,然后设想了另一个未来,“未来我”做出了一大堆糟糕的风格决定:https://github.com/google/guava/wiki/FunctionalExplained.< – (一个很好的阅读.TL; DR’当你去做一些荒谬的长度来制作你的代码时“单线,“番石榴队哭泣”

最佳答案 在流上有map方法,它接受方法参数.

collection.stream()
  .map(obj -> obj.someMethod())
  .collect(Collectors.toList()));

map返回另一个流,以便检索您已调用collect方法的列表.

在一篇文章中解释太多了,但是你可以访问这个链接,这对我帮助很大:

http://winterbe.com/posts/2014/03/16/java-8-tutorial/

点赞