由于Java 8带有强大的lambda表达式,
我想编写一个函数,将字符串的列表/数组转换为整数,浮点数,双打等的数组/列表。
在普通的Java中,它就像
for(String str : strList){ intList.add(Integer.valueOf(str)); } 但是在给定要转换为整数数组的字符串数组的情况下,我如何使用lambda实现相同的功能。 问题来源于stack overflow
您可以创建辅助方法,该方法将使用上的操作T将类型的列表(数组)转换为类型的列表(数组)。Umapstream
//for lists public static <T, U> List convertList(List from, Function<T, U> func) { return from.stream().map(func).collect(Collectors.toList()); }
//for arrays public static <T, U> U[] convertArray(T[] from, Function<T, U> func, IntFunction<U[]> generator) { return Arrays.stream(from).map(func).toArray(generator); } 并像这样使用它:
//for lists List stringList = Arrays.asList("1","2","3"); List integerList = convertList(stringList, s -> Integer.parseInt(s));
//for arrays String[] stringArr = {"1","2","3"}; Double[] doubleArr = convertArray(stringArr, Double::parseDouble, Double[]::new); 请注意, s -> Integer.parseInt(s)可以将其替换为Integer::parseInt(请参见方法参考)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。