@@ -3915,7 +3915,7 @@ trait Observable[+T]
3915
3915
/**
3916
3916
* Returns an Observable that emits a single `mutable.Map[K, mutable.Buffer[V]]`, returned by a specified `mapFactory` function, that
3917
3917
* contains values, extracted by a specified `valueSelector` function from items emitted by the source Observable and
3918
- * keyed by the `keySelector` function.
3918
+ * keyed by the `keySelector` function. `mutable.Map[K, B]` is the same instance create by `mapFactory`.
3919
3919
*
3920
3920
* <img width="640" height="305" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/toMultiMap.png">
3921
3921
*
@@ -3932,17 +3932,17 @@ trait Observable[+T]
3932
3932
/**
3933
3933
* Returns an Observable that emits a single `mutable.Map[K, B]`, returned by a specified `mapFactory` function, that
3934
3934
* contains values extracted by a specified `valueSelector` function from items emitted by the source Observable, and
3935
- * keyed by the `keySelector` function.
3935
+ * keyed by the `keySelector` function. `mutable.Map[K, B]` is the same instance create by `mapFactory`.
3936
3936
*
3937
3937
* <img width="640" height="305" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/toMultiMap.png">
3938
3938
*
3939
3939
* @param keySelector the function that extracts a key from the source items to be used as the key in the Map
3940
3940
* @param valueSelector the function that extracts a value from the source items to be used as the value in the Map
3941
3941
* @param mapFactory the function that returns a Map instance to be used
3942
- * @param collectionFactory the function that returns a `mutable.Buffer[V]` instance for a particular key to be used in the Map
3943
- * @return an Observable that emits a single item: a `mutable.Map[K, B]` that contains mapped items from the source Observable
3942
+ * @param bufferFactory the function that returns a `mutable.Buffer[V]` instance for a particular key to be used in the Map
3943
+ * @return an Observable that emits a single item: a `mutable.Map[K, B]` that contains mapped items from the source Observable.
3944
3944
*/
3945
- def toMultimap [K , V , B <: mutable.Buffer [V ], M <: mutable.Map [K , B ]](keySelector : T => K , valueSelector : T => V , mapFactory : () => M , collectionFactory : K => B ): Observable [M ] = {
3945
+ def toMultimap [K , V , B <: mutable.Buffer [V ], M <: mutable.Map [K , B ]](keySelector : T => K , valueSelector : T => V , mapFactory : () => M , bufferFactory : K => B ): Observable [M ] = {
3946
3946
// It's complicated to convert `mutable.Map[K, mutable.Buffer[V]]` to `java.util.Map[K, java.util.Collection[V]]`,
3947
3947
// so RxScala implements `toMultimap` directly.
3948
3948
// Choosing `mutable.Buffer/Map` is because `append/update` is necessary to implement an efficient `toMultimap`.
@@ -3955,7 +3955,7 @@ trait Observable[+T]
3955
3955
val key = keySelector(t)
3956
3956
val values = map.get(key) match {
3957
3957
case Some (v) => v
3958
- case None => collectionFactory (key)
3958
+ case None => bufferFactory (key)
3959
3959
}
3960
3960
values += valueSelector(t)
3961
3961
map += key -> values : Unit
0 commit comments