String[] arr={"121","4545","45456464"};
Arrays.stream(arr).filter(s->s.length()>4).toArray(String[]::new);
在上面的代码段中,有人可以告诉我 toArray(String[]::new)
发生了什么吗
答案 0 :(得分:5)
$data = array(
'Fname' => $this->input->post('fname'),
'Lname' => $this->input->post('lname'),
'Gender' => $this->input->post('gender'),
'Address' => $this->input->post('address'),
'EmailAdd' => $this->input->post('emailadd'),
'username' => $this->input->post('username'),
'password' => $this->input->post('password')
);
实际上与String[]::new
相同。
在将filter
应用于Stream
后,会创建一个与Stream.toArray
元素数量相同的新size -> new String[size]
。另请参见{{3}}
答案 1 :(得分:3)
toArray
正在创建一个String[]
,其中包含filter
的结果,在您的情况下,所有字符串的长度都大于4. filter
返回{{1}所以你将它转换成一个数组。
打印过滤后的结果,而不是将其存储到数组中
Stream
答案 2 :(得分:1)
String[]::new
是对String[]
类型的新运算符的引用。它是Java-8语法。 toArray
的{{1}}方法将Streams
作为数组的生成器,其中将收集流的元素。它与写作相同:
IntFunction<A[]>