使用Java 8流时,采用列表,从中创建流,执行业务并将其转换回来是很常见的.就像是:
Stream.of(-2,1,2,-5)
.filter(n -> n > 0)
.map(n -> n * n)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
为什么' .collect(Collectors.toList())'部分没有捷径/方便的方法?在Stream接口上,有将方法转换为数组的方法toArray(),为什么toList()缺少?
恕我直言,将结果转换为列表比数组更常见.我可以忍受这一点,但称这种丑陋是令人讨厌的.
有任何想法吗?
我正在尝试动态转换日期.我试过这个方法,但它返回无效.
如何使它成为一个LocalDate对象数组?
String[] datesStrings = {"2015-03-04", "2014-02-01", "2012-03-15"};
LocalDate[] dates = Stream.of(datesStrings)
.forEach(a -> LocalDate.parse(a)); // This returns void so I
// can not assign it.
Run Code Online (Sandbox Code Playgroud) List<Customer> customers = findAllCustomer();
public class Customer implements Serializable {
private State state;
//getter and setter
Run Code Online (Sandbox Code Playgroud)
我在下面使用jdk 7接近了
List<State> states = new ArrayList<>();
for (Customer customer : customers) {
states.add(customer.getState());
}
Run Code Online (Sandbox Code Playgroud)
如何使用jdk 8实现相同的功能?