主要是 php 的 array_column
太爽了,哈哈 http://php.net/manual/zh/function.array-column.php
1
binbinyouliiii 2018-04-30 13:25:29 +08:00
手动实现不就好了。
这个功能需求应该也很小,又简单,估计第三方库不会有这种方法 |
2
whatisnew OP @binbinyouliiii Lambda 实现 easy 但是还是觉得不够优雅。。。
|
3
ghos 2018-04-30 13:52:46 +08:00
港道理 好像没有这种操作的吧。。。lambda 已经相当便捷了
|
4
binbinyouliiii 2018-04-30 13:54:49 +08:00
@whatisnew #2 换 kotlin,使用 kotlin 扩展函数
|
5
Cbdy 2018-04-30 14:23:12 +08:00
```java
List<List<Integer>> a2 = new ArrayList<>(); a2.add(List.of(1, 2, 3, 4, 5, 6)); a2.add(List.of(2, 3, 4, 5, 6, 7)); a2.add(List.of(3, 4, 5, 6, 7, 8)); var result = a2.stream().map(l -> l.get(3)).collect(Collectors.toList()); assert Objects.deepEquals(result, List.of(4, 5, 6)); ``` |
6
Seanfuck 2018-04-30 16:27:25 +08:00
作为 php 老司机居然不知道还有这么个好用的函数,一直是 foreach 构造。。。法克!
|
9
aristotll 2018-04-30 17:11:31 +08:00
由于 php 关联数组的灵活性(可以当 list 用也可以当 map 用)
所以 Java 应该是没有这个的 (list 和 map 本身接口都不一样 当然要实现一个应该也不太难吧 |
10
shiji 2018-04-30 18:35:20 +08:00 via Android
@Seanfuck 我以前测过,for 循环是最快的。php 里 array 开头的函数性能都一般。如果数据量大小不可预见,最好还是 for 循环
|
11
sagaxu 2018-04-30 20:25:07 +08:00 via Android
list.map { it.column }
|
12
realvalkyrie 2018-04-30 21:08:46 +08:00 1
Guava 的 Table ? getColumn ?
|
13
lihongjie0209 2018-04-30 21:10:14 +08:00
对象了解一下?
|
14
msg7086 2018-05-01 00:12:27 +08:00
就是 stream().map().collect()。
其实你要是觉得半函数式编程爽,不如来玩 Ruby,各种 MapReduce 飞起。 names = users.map(&:first_name) |
16
UnluckyNinja 2018-05-01 02:38:25 +08:00
如果目的单纯就是集合内元素属性提取
java 用一个集合函数方法加 lambda 应该就行 groovy 有语法糖可以用,call with spread operator "*." php 文档第一个例子翻译成 groovy 差不多应该是 ```groovy def records = [ [ id: 2135, first_name: 'John', last_name: 'Doe' ], ... ] def first_names = records*.first_name println first_names ``` |
17
HangoX 2018-05-01 10:20:33 +08:00 via Android
请使用 groovy 实现
|
19
wingyiu 2018-05-02 09:27:07 +08:00
论内置数据结构的丰富性,我只服 PHP
|
20
picasso2501 2018-05-02 12:03:27 +08:00
@lol173 恰恰因为他是老司机,这是 5.4 的 **新功能** 哈哈
如果是 php4 的语法,他应该是很熟的。。。。 其实我不是在讽刺他,这很正常,php7.1 和 7.2 的 new feature 我到现在都没看。。。。 |
21
Navee 2018-05-02 15:20:32 +08:00
guava 的 Table 就可以实现一样的功能
https://github.com/google/guava/wiki/NewCollectionTypesExplained#table |