在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  HTML/ 為什么filter 只打印 3遍?? 他不得全部循環(huán)才知道有幾個(gè) 字符串是

為什么filter 只打印 3遍?? 他不得全部循環(huán)才知道有幾個(gè) 字符串是 3個(gè)length

public class LazyStreams {
    private static int length(final String name) {
        System.out.println("getting length for " + name);
        return name.length();
    }
    private static String toUpper(final String name ) {
        System.out.println("converting to uppercase: " + name);
        return name.toUpperCase();
    }
    //...

    public static void main(final String[] args) {
        List<String> names = Arrays.asList("Brad", "Kate", "Kim", "Jack", "Joe", "Mike", "Susan", "George", "Robert", "Julia", "Parker", "Benson");

        final String firstNameWith3Letters = names.stream()
            .filter(name -> length(name) == 3)
            .map(name -> toUpper(name))
            .findFirst()
            .get();

        System.out.println(firstNameWith3Letters);
    }
}

后來(lái)搜了下,說(shuō)延遲加載, '懶特性'
那么:
final String firstNameWith3Letters = names.stream()

            .filter(name -> length(name) == 3) //TODO 這種最后只要1個(gè),是不是可以 取到第一個(gè)就返回了??? 因?yàn)樽詈笾灰粋€(gè)findFirst
            .map(name -> toUpper(name))
            .findFirst()
            .get();
回答
編輯回答
絯孑氣

看錯(cuò)了,只只需要 循環(huán)一個(gè)
對(duì)的

2018年6月14日 07:40