说我有
List<SomeObject> objList = new ArrayList<SomeObject>();
Run Code Online (Sandbox Code Playgroud)
如果someObject包含名为id的字段.我们可以通过一些查询来找到它
objList.filter('id=2');
没有循环列表?如果没有,那么为什么呢?这可以是一个非常有用的方法,并用作替代写繁琐的循环?
具有功能性,良好功能的库(例如functionaljava)提供了这样的方法.
您需要使用自己的List实现,它与本机Javas不兼容(Array)List或在两者之间进行转换.
一个例子:
import fj.data.Java
import fj.data.List
import fj.F
// Converting an ArrayList
fj.data.List<SomeObject> objList2 = Java.ArrayList_List().f(objList);
fj.data.List<SomeObject> filteredObjList = objList2.filter(new F<SomeObject, Boolean>() {
Boolean f(SomeObject c) { return c.id == 2; }
});
// Converting back to ArrayList
java.util.List<SomeObject> objList2 = Java.List_ArrayList().f(filteredObjList );
Run Code Online (Sandbox Code Playgroud)
通过List在项目中使用functionaljava ,您可以避免转换.
如果你想要像 linq for java 这样的东西,请查看quaere
编辑:此时,quaere 看起来没有维护。随着 Java 7 即将停产,您应该使用 Java 8,与 Linq 的点语法相比, Java 8 的Stream API应该可以帮助您实现大部分目标。请参阅本页了解一些示例。
| 归档时间: |
|
| 查看次数: |
20608 次 |
| 最近记录: |