Skip to content
This repository was archived by the owner on Dec 22, 2021. It is now read-only.

Commit 497c15a

Browse files
committed
Trim the array that backs groups in View.groupBy
1 parent 8124e1a commit 497c15a

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/main/scala/strawman/collection/View.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package strawman.collection
22

3-
import strawman.collection.mutable.ArrayBuffer
3+
import strawman.collection.immutable.ImmutableArray
4+
import strawman.collection.mutable.{ArrayBuffer, Builder}
45

56
import scala.{Any, Boolean, Equals, Int, Nothing, annotation}
67
import scala.Predef.intWrapper
@@ -17,15 +18,15 @@ trait View[+A] extends Iterable[A] with IterableOps[A, View, View[A]] {
1718
override def className = "View"
1819

1920
def groupBy[K](f: (A) => K): immutable.Map[K, View[A]] = {
20-
val m = mutable.Map.empty[K, ArrayBuffer[A]]
21+
val m = mutable.Map.empty[K, Builder[A, ImmutableArray[A]]]
2122
for (elem <- coll) {
2223
val key = f(elem)
23-
val bldr = m.getOrElseUpdate(key, ArrayBuffer.empty)
24+
val bldr = m.getOrElseUpdate(key, ImmutableArray.newBuilder())
2425
bldr += elem
2526
}
2627
var result = immutable.Map.empty[K, View[A]]
2728
m.foreach { case (k, v) =>
28-
result = result + ((k, v.view))
29+
result = result + ((k, v.result().view))
2930
}
3031
result
3132
}

0 commit comments

Comments
 (0)