2013-10-05 34 views
1

我找这可以从ArrayList中像SQL选择对象库“其中”命令。从ArrayList的选择对象,而LOOP - ANDROID

我已经在我的项目巨大的ArrayList(2000和20000之间),我不想写了,while循环每次..

我发现lambdaj,它是Java。

我试图在我的Android项目中使用lambdaj,但我无法做到这一点。

例如,当我写 List<Sale> sortedSales = sort(sales, on(Sale.class).getCost());
在我的项目,日食都看不到“排序”,“关于”命令,这个例子代码..

有没有像lambdaj另一个库或任何人都可以告诉我我如何在我的android项目中使用lambdaj?

谢谢..

+0

为什么你尝试加载数据2k到20k之间?从我的exp。更好地告诉SQL“从..到” –

+0

Maxim是正确的。 SQL正是为了这个目的。你可以做kludging的ArrayList只会浪费内存和性能也比任何SQL实现...... – ppeterka

+0

我必须这样做什么。我已经在我的项目中使用了SQL。我从数据库获取20000个数据进行绘制。我正在使用地图,如果用户想看看纽约的每座建筑,我必须画出纽约的每座建筑,并且我必须将它们放入数组列表中。 –

回答

1

Guava库比lambdaj更受欢迎,并且确实允许您为avoid,while循环利用preficates和过滤方法。

0

如果要选择符合条件的元素(或将匹配的元素),请使用Java 8过滤器函数。 (不再需要使用其他库)。

做得一样:

List<Foo> listOfFoo = ... 
Stream<Foo> matchingFoo = listOfFoo.stream().filter(t -> t.propertyOrMethod == 'criteria'); 
0

如果你可以使用xpresso,你可以写:

list<Sale> sortedSales = x.list(x.sorted(sales, x.invoke("getCost"))); 

(我的XpressO的作者)