@@ -3915,7 +3915,7 @@ trait Observable[+T]
39153915 /**
39163916 * Returns an Observable that emits a single `mutable.Map[K, mutable.Buffer[V]]`, returned by a specified `mapFactory` function, that
39173917 * 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`.
39193919 *
39203920 * <img width="640" height="305" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/toMultiMap.png">
39213921 *
@@ -3932,17 +3932,17 @@ trait Observable[+T]
39323932 /**
39333933 * Returns an Observable that emits a single `mutable.Map[K, B]`, returned by a specified `mapFactory` function, that
39343934 * 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`.
39363936 *
39373937 * <img width="640" height="305" src="https://raw.github.com/wiki/Netflix/RxJava/images/rx-operators/toMultiMap.png">
39383938 *
39393939 * @param keySelector the function that extracts a key from the source items to be used as the key in the Map
39403940 * @param valueSelector the function that extracts a value from the source items to be used as the value in the Map
39413941 * @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.
39443944 */
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 ] = {
39463946 // It's complicated to convert `mutable.Map[K, mutable.Buffer[V]]` to `java.util.Map[K, java.util.Collection[V]]`,
39473947 // so RxScala implements `toMultimap` directly.
39483948 // Choosing `mutable.Buffer/Map` is because `append/update` is necessary to implement an efficient `toMultimap`.
@@ -3955,7 +3955,7 @@ trait Observable[+T]
39553955 val key = keySelector(t)
39563956 val values = map.get(key) match {
39573957 case Some (v) => v
3958- case None => collectionFactory (key)
3958+ case None => bufferFactory (key)
39593959 }
39603960 values += valueSelector(t)
39613961 map += key -> values : Unit
0 commit comments