나는 의심의 여지를 나타 내기 위해 내가 만든 클래스를 아래에 가지고있다.groupBy 작업을 실행 한 후 여러 객체를 단일 객체로 병합하는 방법은 무엇입니까?
내 유동성에 초기 변환을 수행 한 후 내가 가진 :
UserScoreTO{id=1, name='john', score=4}
UserScoreTO{id=1, name='john', score=5}
UserScoreTO{id=1, name='john', score=1}
UserScoreTO{id=2, name='paul', score=4}
UserScoreTO{id=2, name='paul', score=2}
UserScoreTO{id=3, name='mark', score=1}
UserScoreTO{id=3, name='mark', score=7}
내가 결합하려는 UserScoreTO가 사용자 정보를 포함하는 각 그룹에 대해 하나 개의 객체를 방출 유동성에 동일한 ID, 개체 및 점수의 합계.
그래서 결과는 방출이 유동성 될 것입니다 :User (1, "john", 10);
User (2, "paul", 6);
User (3, "mark", 8);
내가 (내가 HashMaps을 함께 뭔가를하고 동일한 결과를 얻을 수 알고) 가능하면 RxJava이 작업을 수행하고자합니다.
package examples.rxjava;
import java.util.Arrays;
import java.util.List;
import io.reactivex.Flowable;
import static java.lang.System.out;
public class TestUsers {
public static void main(String[] args) {
new TestUsers().execute();
}
public void execute() {
getUsers()
.flatMap(list -> Flowable.fromIterable(list))
.groupBy(userScoreTO -> userScoreTO.id).subscribe(group -> group.subscribe(out::println));
}
Flowable<List<UserScoreTO>> getUsers() {
return Flowable.fromCallable(
() -> Arrays.asList(
new UserScoreTO(1, "john", 4),
new UserScoreTO(1, "john", 5),
new UserScoreTO(1, "john", 1),
new UserScoreTO(2, "paul", 4),
new UserScoreTO(2, "paul", 2),
new UserScoreTO(3, "mark", 1),
new UserScoreTO(3, "mark", 7))
);
}
private class User {
private int id;
private String name;
private int totalScore;
public User(int id, String name, int totalScore) {
this.id = id;
this.name = name;
this.totalScore = totalScore;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", totalScore=" + totalScore +
'}';
}
}
private class UserScoreTO {
private int id;
private String name;
private int score;
public UserScoreTO(int id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
@Override
public String toString() {
return "UserScoreTO{" +
"id=" + id +
", name='" + name + '\'' +
", score=" + score +
'}';
}
}
}
ID별로 그룹화 된 UserScoreTO를 인쇄합니다. 이러한 객체를 User 객체로 변형하여 반복되는 UserScoreTO를 User 객체로 병합하고 점수를 추가하려고합니다. 예상 결과는 질문의 본문에 표시됩니다. – alexpfx