All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.collections.api.map.primitive.MutablePrimitiveObjectMap Maven / Gradle / Ivy

There is a newer version: 12.0.0.M3
Show newest version
/*
 * Copyright (c) 2021 Goldman Sachs.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Eclipse Distribution License v. 1.0 which accompany this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 */

package org.eclipse.collections.api.map.primitive;

import org.eclipse.collections.api.bag.MutableBag;
import org.eclipse.collections.api.bag.primitive.MutableBooleanBag;
import org.eclipse.collections.api.bag.primitive.MutableByteBag;
import org.eclipse.collections.api.bag.primitive.MutableCharBag;
import org.eclipse.collections.api.bag.primitive.MutableDoubleBag;
import org.eclipse.collections.api.bag.primitive.MutableFloatBag;
import org.eclipse.collections.api.bag.primitive.MutableIntBag;
import org.eclipse.collections.api.bag.primitive.MutableLongBag;
import org.eclipse.collections.api.bag.primitive.MutableShortBag;
import org.eclipse.collections.api.block.function.Function;
import org.eclipse.collections.api.block.function.Function0;
import org.eclipse.collections.api.block.function.Function2;
import org.eclipse.collections.api.block.function.primitive.BooleanFunction;
import org.eclipse.collections.api.block.function.primitive.ByteFunction;
import org.eclipse.collections.api.block.function.primitive.CharFunction;
import org.eclipse.collections.api.block.function.primitive.DoubleFunction;
import org.eclipse.collections.api.block.function.primitive.FloatFunction;
import org.eclipse.collections.api.block.function.primitive.IntFunction;
import org.eclipse.collections.api.block.function.primitive.LongFunction;
import org.eclipse.collections.api.block.function.primitive.ShortFunction;
import org.eclipse.collections.api.block.predicate.Predicate;
import org.eclipse.collections.api.block.predicate.Predicate2;
import org.eclipse.collections.api.block.procedure.Procedure2;
import org.eclipse.collections.api.factory.Maps;
import org.eclipse.collections.api.map.MutableMap;
import org.eclipse.collections.api.multimap.bag.MutableBagMultimap;
import org.eclipse.collections.api.ordered.OrderedIterable;
import org.eclipse.collections.api.partition.bag.PartitionMutableBag;
import org.eclipse.collections.api.set.MutableSet;
import org.eclipse.collections.api.tuple.Pair;

public interface MutablePrimitiveObjectMap extends PrimitiveObjectMap
{
    void clear();

    @Override
     MutableMap aggregateInPlaceBy(Function groupBy, Function0 zeroValueFactory, Procedure2 mutatingAggregator);

    @Override
    default  MutableMap aggregateBy(Function groupBy, Function0 zeroValueFactory, Function2 nonMutatingAggregator)
    {
        return this.aggregateBy(
                groupBy,
                zeroValueFactory,
                nonMutatingAggregator,
                Maps.mutable.empty());
    }

    @Override
     MutableBagMultimap groupByEach(Function> function);

    @Override
     MutableBagMultimap groupBy(Function function);

    @Override
    default  MutableMap groupByUniqueKey(Function function)
    {
        return this.groupByUniqueKey(function, Maps.mutable.withInitialCapacity(this.size()));
    }

    @Override
     MutableBag collectIf(Predicate predicate, Function function);

    @Override
     MutableBag collect(Function function);

    @Override
    MutableBooleanBag collectBoolean(BooleanFunction booleanFunction);

    @Override
    MutableByteBag collectByte(ByteFunction byteFunction);

    @Override
    MutableCharBag collectChar(CharFunction charFunction);

    @Override
    MutableDoubleBag collectDouble(DoubleFunction doubleFunction);

    @Override
    MutableFloatBag collectFloat(FloatFunction floatFunction);

    @Override
    MutableIntBag collectInt(IntFunction intFunction);

    @Override
    MutableLongBag collectLong(LongFunction longFunction);

    @Override
    MutableShortBag collectShort(ShortFunction shortFunction);

    @Override
     MutableBag collectWith(Function2 function, P parameter);

    @Override
     MutableBag flatCollect(Function> function);

    /**
     * @since 9.2
     */
    @Override
    default  MutableBag flatCollectWith(Function2> function, P parameter)
    {
        return this.flatCollect(each -> function.apply(each, parameter));
    }

    @Override
     MutableBag selectInstancesOf(Class clazz);

    @Override
    MutableBag select(Predicate predicate);

    @Override
    

MutableBag selectWith(Predicate2 predicate, P parameter); @Override MutableBag reject(Predicate predicate); @Override

MutableBag rejectWith(Predicate2 predicate, P parameter); @Override PartitionMutableBag partition(Predicate predicate); @Override

PartitionMutableBag partitionWith(Predicate2 predicate, P parameter); /** * @deprecated in 7.0. Use {@link OrderedIterable#zip(Iterable)} instead. */ @Override @Deprecated MutableBag> zip(Iterable that); /** * @deprecated in 7.0. Use {@link OrderedIterable#zipWithIndex()} instead. */ @Override @Deprecated MutableSet> zipWithIndex(); @Override MutableObjectLongMap sumByInt(Function groupBy, IntFunction function); @Override MutableObjectDoubleMap sumByFloat(Function groupBy, FloatFunction function); @Override MutableObjectLongMap sumByLong(Function groupBy, LongFunction function); @Override MutableObjectDoubleMap sumByDouble(Function groupBy, DoubleFunction function); }