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

com.gs.collections.api.bag.MutableBagIterable Maven / Gradle / Ivy

/*
 * Copyright 2015 Goldman Sachs.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.gs.collections.api.bag;

import com.gs.collections.api.block.function.Function;
import com.gs.collections.api.block.predicate.Predicate;
import com.gs.collections.api.block.predicate.Predicate2;
import com.gs.collections.api.block.predicate.primitive.IntPredicate;
import com.gs.collections.api.block.procedure.Procedure;
import com.gs.collections.api.collection.MutableCollection;
import com.gs.collections.api.list.MutableList;
import com.gs.collections.api.map.MutableMapIterable;
import com.gs.collections.api.multimap.bag.MutableBagIterableMultimap;
import com.gs.collections.api.partition.bag.PartitionMutableBagIterable;
import com.gs.collections.api.set.MutableSetIterable;
import com.gs.collections.api.tuple.Pair;
import com.gs.collections.api.tuple.primitive.ObjectIntPair;

public interface MutableBagIterable extends Bag, MutableCollection
{
    void addOccurrences(T item, int occurrences);

    boolean removeOccurrences(Object item, int occurrences);

    boolean setOccurrences(T item, int occurrences);

    MutableBagIterable tap(Procedure procedure);

    MutableBagIterable select(Predicate predicate);

    

MutableBagIterable selectWith(Predicate2 predicate, P parameter); MutableBagIterable reject(Predicate predicate);

MutableBagIterable rejectWith(Predicate2 predicate, P parameter); PartitionMutableBagIterable partition(Predicate predicate);

PartitionMutableBagIterable partitionWith(Predicate2 predicate, P parameter); MutableBagIterable selectInstancesOf(Class clazz); MutableBagIterableMultimap groupBy(Function function); MutableBagIterableMultimap groupByEach(Function> function); MutableSetIterable> zipWithIndex(); MutableBagIterable selectByOccurrences(IntPredicate predicate); MutableMapIterable toMapOfItemToCount(); /** * @since 6.0 */ MutableList> topOccurrences(int count); /** * @since 6.0 */ MutableList> bottomOccurrences(int count); MutableBagIterable with(T element); MutableBagIterable without(T element); MutableBagIterable withAll(Iterable elements); MutableBagIterable withoutAll(Iterable elements); }