我有非常大量的数据收集,并且原始数据已经按照将成为关键的数据进行了排序。例如,我有一个CSV文件,第一列将成为分组的键。
A,x,x,x
A,x,y,x
A,z,y,y
C,x,s,d
C,t,d,s
B,a,s,a
E,x,x,x
E,t,r,y
这些行被转换为对象,并放入列表中,并使用RxJava Flowable
进行流传输。因为此CSV将会非常庞大(非常庞大,以至于会导致应用程序崩溃),所以有一种很好的方法将这些对象转换为地图条目,如下所示:
{ 'A': [[x,x,x],[x,y,x],[z,y,y]] }
答案 0 :(得分:1)
我现在正在使用viewController.extendedLayoutIncludesOpaqueBars = false
。
一个例子是
FlowableTransformers.partialCollect
答案 1 :(得分:0)
使用rxjava2-extras中的collectWhile
并指定集合工厂以生成特殊的键对象:
class Keyed {
final K key;
final List<Value> list;
...
}
K key(Value value) {
...
}
source.compose(
Transformers.
collectWhile(
// factory
() -> new Keyed(),
// add
(keyed, x) -> {
keyed.list.add(x);
return keyed; },
// condition
(keyed, x) ->
keyed.list.isEmpty() ||
key(x).equals(keyed.key)));