2016-08-10 3 views
0

私は学生リストを持っています。更新リストを使用して更新する必要があります。 いくつかのことのように:RxJavaを使ってリストを別のリストに更新するには

List<Student> students = new ArrayList<>(); 
List<Update> updates = new ArrayList<>(); 

    ListIterator<Student> studentListIterator = students.listIterator(); 
    ListIterator<Update> updateListIterator = updates.listIterator(); 

    while (updateListIterator.hasNext()) { 
     Update update = updateListIterator.next(); 
     int id = update.getId(); 
     while (studentListIterator.hasNext()) { 
      Student student = studentListIterator.next(); 
      int studentId = student.getId(); 
      if (studentId == id) { 
       student.setScore(update.getDynamicScore() + 10); 
      } 
     } 
    } 

Student.class:

public class Student { 
    int id; 
    int score; 
    } 

更新クラス:

public class Update { 
    private int id; 
    private int dynamicScore; 
} 

は、どのように私はRxJavaを使用して代わりに

答えて

0

あなたが持っていることを行うことができますリスト自体を変更するためにLIstIteratorを使用する反復しながら。

ListIterator<Student> iter = students.listIterator(); 
while(iter.hasNext()){ 
    Student std = iter.next(); 
    // do your add/remove/edit operation here..... 
} 
+0

見ます –

0

observableで演算子マージを使用すると、両方のリストをマージする必要があります。 あなたが例を挙げてRxJavaについての詳細を知りたい場合は、この例

/** 
* Here we merge two list and we sort the list for every new item added into. 
* Shall return 
* 
* [1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15] 
*/ 
@Test 
public void testMergeLists() { 
    Observable.merge(Observable.from(Arrays.asList(2, 1, 13, 11, 5)), Observable.from(Arrays.asList(10, 4, 12, 3, 14, 15))) 
       .collect(ArrayList<Integer>::new, ArrayList::add) 
       .doOnNext(Collections::sort) 
       .subscribe(System.out::println); 

} 

を見て、あなたの思い出させるためにあなたに感謝ああ、私はすでに私の質問を編集して、ここでhttps://github.com/politrons/reactive

関連する問題