Beispiel #1
0
 /**
  * @return \Traver\Collection\Builder
  */
 protected function createBuilder()
 {
     return ImmutableMap::newBuilder();
 }
Beispiel #2
0
 public function build()
 {
     return ImmutableMap::copyOf($this->array);
 }
Beispiel #3
0
 /**
  * Creates a new {@link ImmutableMap} from the given elements.
  * @param array|Traversable $collection
  * @return ImmutableMap
  * @see map alias
  */
 function in($collection)
 {
     return ImmutableMap::copyOf($collection);
 }
Beispiel #4
0
 /**
  * @param callable $keyFunction
  * @return PipeableLike
  * @see Pipeable::groupBy
  */
 public function groupBy(callable $keyFunction)
 {
     $keyFunction = self::wrapCallback($keyFunction);
     $result = [];
     foreach ($this->asTraversable() as $key => $value) {
         $groupKey = $keyFunction($value, $key);
         if (!isset($result[$groupKey])) {
             $result[$groupKey] = [];
         }
         $result[$groupKey][$key] = $value;
     }
     $builder = ImmutableMap::newBuilder();
     foreach ($result as $key => $group) {
         $groupPipeable = $this->newCollection($group);
         $builder->add($groupPipeable, $key);
     }
     return $builder->build();
 }