I have a UserBean like :
class UserBean {
public List<String> userNumber;
public int userId;
public String userName;
}
class UserBeanData {
public String userNumber;
public int userId;
public String userName;
}
Now , i want to circular this bean list and get a piece of data list,like this : [{userId , userName , userNumber},{userId , userName , userNumber},...]. The way I use it now is:
List<UserBean> userBeen = new ArrayList<>();
final List<UserBeanData> userBeanDatas = new ArrayList<>();
Observable.from(userBeen)
.flatMap(new Func1<UserBean, Observable<UserBeanData>>() {
@Override
public Observable<UserBeanData> call(UserBean userBean) {
return Observable.combineLatest(Observable.just(userBean), Observable.from(userBean.userNumber)
, new Func2<UserBean, String, UserBeanData>() {
@Override
public UserBeanData call(UserBean userBean, String s) {
UserBeanData tData = new UserBeanData();
tData.userId = userBean.userId;
tData.userName = userBean.userName;
tData.userNumber = s;
return tData;
}
});
}
})
.subscribe(new Action1<UserBeanData>() {
@Override
public void call(UserBeanData userBeanData) {
userBeanDatas.add(userBeanData);
}
});
Are there any other better ways to achieve this?