一 . 描述
toMultiMap类型是toMap ; 他可以 在你拿到了 服务器返回的 数据 集合 list 泛型一般是对象, 但这时你想 要一个map ,同时 key 为 对象里 uuid ,这样
你就可以方便的使用toMultiMap来实现 :
二 图片描述 :
二 示例代码 :
List<StudentToMultiMap> mapList = new ArrayList<>(); StudentToMultiMap stu1 = new StudentToMultiMap(1001, "ZhangSan"); StudentToMultiMap stu2 = new StudentToMultiMap(1002, "LiSi"); mapList.add(stu1); mapList.add(stu2); Observable.from(mapList) .toMultimap(new Func1<StudentToMultiMap, String>() { @Override public String call(StudentToMultiMap student) { return student.getId() + ""; } }).subscribe(new Subscriber<Map<String, Collection<StudentToMultiMap>>>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Map<String, Collection<StudentToMultiMap>> map) { // LogUtils.e(TAG,"RxAgain.onNext."+map.toString()); String[] keys = map.keySet().toArray(new String[map.size()]); for (String key:keys ) { LogUtils.e(TAG,"RxAgain.onNext.key="+key); List<StudentToMultiMap> multiMapList = (List<StudentToMultiMap>) map.get(key); LogUtils.e(TAG,"RxAgain.onNext.=value"+multiMapList.toString()); } } });
二 运行结果 :
1001
1002
[Student{id=1001, name='ZhangSan'}]
[Student{id=1002, name='LiSi'}]