Interface Bag<T>
- All Superinterfaces:
InternalIterable<T>,Iterable<T>,RichIterable<T>
- All Known Subinterfaces:
ImmutableBag<T>,ImmutableBagIterable<T>,ImmutableSortedBag<T>,MultiReaderBag<T>,MutableBag<T>,MutableBagIterable<T>,MutableSortedBag<T>,SortedBag<T>,UnsortedBag<T>
- All Known Implementing Classes:
AbstractBag,AbstractHashBag,AbstractImmutableBag,AbstractImmutableBagIterable,AbstractMutableBag,AbstractMutableBagIterable,AbstractMutableSortedBag,HashBag,HashBagWithHashingStrategy,ImmutableArrayBag,ImmutableHashBag,MultiReaderHashBag,SynchronizedBag,SynchronizedSortedBag,TreeBag,UnmodifiableBag,UnmodifiableSortedBag
- Since:
- 1.0
-
Method Summary
Modifier and TypeMethodDescriptiondefault <K,V, R extends MutableMapIterable<K, V>>
RaggregateBy(Function<? super T, ? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V, ? super T, ? extends V> nonMutatingAggregator, R target) Applies an aggregate function over the iterable grouping results into the target map based on the specific groupBy function.booleanallSatisfyWithOccurrences(ObjectIntPredicate<? super T> predicate) Returns true if the predicate evaluates to true for all elements of the Bag.booleananySatisfyWithOccurrences(ObjectIntPredicate<? super T> predicate) Returns true if the predicate evaluates to true for any element of the Bag.bottomOccurrences(int count) Returns thecountleast frequently occurring items.<V> RichIterable<V>collectWithOccurrences(ObjectIntToObjectFunction<? super T, ? extends V> function) Iterates over the unique elements and their occurrences and collects the results of applying the specified function.default <V,R extends Collection<V>>
RcollectWithOccurrences(ObjectIntToObjectFunction<? super T, ? extends V> function, R target) Iterates over the unique elements and their occurrences and collects the results of applying the specified function into the target collection.detectWithOccurrences(ObjectIntPredicate<? super T> predicate) Returns an element of the Bag that satisfies the predicate or null if such an element does not existdefault RichIterable<T>Returns an unmodifiable view on the distinct elements with the same complexity as the Bag implementation.booleanTwo bagsb1andb2are equal ifm1.toMapOfItemToCount().equals(m2.toMapOfItemToCount()).voidforEachWithOccurrences(ObjectIntProcedure<? super T> procedure) For each distinct item, with the number of occurrences, execute the specified procedure.<V> BagMultimap<V,T> For each element of the iterable, the function is evaluated and the results of these evaluations are collected into a new multimap, where the transformed value is the key and the original values are added to the same (or similar) species of collection as the source iterable.<V> BagMultimap<V,T> groupByEach(Function<? super T, ? extends Iterable<V>> function) Similar toRichIterable.groupBy(Function), except the result of evaluating function will return a collection of keys for each value.inthashCode()Returns the hash code for this Bag, defined as this.toMapOfItemToCount().hashCode().booleannoneSatisfyWithOccurrences(ObjectIntPredicate<? super T> predicate) Returns true if the Bag is empty or if the predicate evaluates to false for all elements of the Bag.intoccurrencesOf(Object item) The occurrences of a distinct item in the bag.Filters a collection into a PartitionedIterable based on the evaluation of the predicate.<P> PartitionBag<T>partitionWith(Predicate2<? super T, ? super P> predicate, P parameter) Filters a collection into a PartitionIterable based on the evaluation of the predicate.default <R> RreduceInPlace(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator) This method produces the equivalent result asStream.collect(Supplier, BiConsumer, BiConsumer).default <R,A> R reduceInPlace(Collector<? super T, A, R> collector) This method produces the equivalent result asStream.collect(Collector).Returns all elements of the source collection that return false when evaluating of the predicate.rejectWith(Predicate2<? super T, ? super P> predicate, P parameter) Similar toRichIterable.reject(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.Returns all elements of the source collection that return true when evaluating the predicate.selectByOccurrences(IntPredicate predicate) Returns all elements of the bag that have a number of occurrences that satisfy the predicate.Returns all elements of the bag that have more than one occurrence.<S> Bag<S>selectInstancesOf(Class<S> clazz) Returns all elements of the source collection that are instances of the Classclazz.Returns a set containing all elements of the bag that have exactly one occurrence.selectWith(Predicate2<? super T, ? super P> predicate, P parameter) Similar toRichIterable.select(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.intThe size of the Bag when counting only distinct elements.default DoubleSummaryStatisticssummarizeDouble(DoubleFunction<? super T> function) Returns the result of summarizing the value returned from applying the DoubleFunction to each element of the iterable.default DoubleSummaryStatisticssummarizeFloat(FloatFunction<? super T> function) Returns the result of summarizing the value returned from applying the FloatFunction to each element of the iterable.default IntSummaryStatisticssummarizeInt(IntFunction<? super T> function) Returns the result of summarizing the value returned from applying the IntFunction to each element of the iterable.default LongSummaryStatisticssummarizeLong(LongFunction<? super T> function) Returns the result of summarizing the value returned from applying the LongFunction to each element of the iterable.Executes the Procedure for each element in the iterable and returnsthis.Converts the Bag to a Map of the Item type to its count as an Integer.topOccurrences(int count) Returns thecountmost frequently occurring items.Returns a string representation of this bag.Zips thisRichIterablewith its indices.Methods inherited from interface org.eclipse.collections.api.InternalIterable
forEach, forEachWith, forEachWithIndexMethods inherited from interface java.lang.Iterable
iterator, spliteratorMethods inherited from interface org.eclipse.collections.api.RichIterable
aggregateBy, aggregateInPlaceBy, allSatisfy, allSatisfyWith, anySatisfy, anySatisfyWith, appendString, appendString, appendString, asLazy, chunk, collect, collect, collectBoolean, collectBoolean, collectByte, collectByte, collectChar, collectChar, collectDouble, collectDouble, collectFloat, collectFloat, collectIf, collectIf, collectInt, collectInt, collectLong, collectLong, collectShort, collectShort, collectWith, collectWith, contains, containsAll, containsAllArguments, containsAllIterable, containsAny, containsAnyIterable, containsBy, containsNone, containsNoneIterable, count, countBy, countBy, countByEach, countByEach, countByWith, countByWith, countWith, detect, detectIfNone, detectOptional, detectWith, detectWithIfNone, detectWithOptional, each, flatCollect, flatCollect, flatCollectBoolean, flatCollectByte, flatCollectChar, flatCollectDouble, flatCollectFloat, flatCollectInt, flatCollectLong, flatCollectShort, flatCollectWith, flatCollectWith, forEach, getAny, getFirst, getLast, getOnly, groupBy, groupByAndCollect, groupByEach, groupByUniqueKey, groupByUniqueKey, injectInto, injectInto, injectInto, injectInto, injectInto, injectIntoDouble, injectIntoFloat, injectIntoInt, injectIntoLong, into, isEmpty, makeString, makeString, makeString, makeString, max, max, maxBy, maxByOptional, maxOptional, maxOptional, min, min, minBy, minByOptional, minOptional, minOptional, noneSatisfy, noneSatisfyWith, notEmpty, reduce, reject, rejectWith, select, selectWith, size, sumByDouble, sumByFloat, sumByInt, sumByLong, sumOfDouble, sumOfFloat, sumOfInt, sumOfLong, toArray, toArray, toBag, toBiMap, toImmutableBag, toImmutableBiMap, toImmutableList, toImmutableMap, toImmutableSet, toImmutableSortedBag, toImmutableSortedBag, toImmutableSortedBagBy, toImmutableSortedList, toImmutableSortedList, toImmutableSortedListBy, toImmutableSortedSet, toImmutableSortedSet, toImmutableSortedSetBy, toList, toMap, toMap, toSet, toSortedBag, toSortedBag, toSortedBagBy, toSortedList, toSortedList, toSortedListBy, toSortedMap, toSortedMap, toSortedMapBy, toSortedSet, toSortedSet, toSortedSetBy, toString, zip, zip, zipWithIndex
-
Method Details
-
equals
Two bagsb1andb2are equal ifm1.toMapOfItemToCount().equals(m2.toMapOfItemToCount()). -
hashCode
int hashCode()Returns the hash code for this Bag, defined as this.toMapOfItemToCount().hashCode(). -
tap
Description copied from interface:RichIterableExecutes the Procedure for each element in the iterable and returnsthis.Example using a Java 8 lambda expression:
RichIterable<Person> tapped = people.tap(person -> LOGGER.info(person.getName()));Example using an anonymous inner class:
RichIterable<Person> tapped = people.tap(new Procedure<Person>() { public void value(Person person) { LOGGER.info(person.getName()); } });- Specified by:
tapin interfaceRichIterable<T>- See Also:
-
select
Description copied from interface:RichIterableReturns all elements of the source collection that return true when evaluating the predicate. This method is also commonly called filter.Example using a Java 8 lambda expression:
RichIterable<Person> selected = people.select(person -> person.getAddress().getCity().equals("London"));Example using an anonymous inner class:
RichIterable<Person> selected = people.select(new Predicate<Person>() { public boolean accept(Person person) { return person.getAddress().getCity().equals("London"); } });- Specified by:
selectin interfaceRichIterable<T>
-
selectWith
Description copied from interface:RichIterableSimilar toRichIterable.select(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.E.g. return a
Collectionof Person elements where the person has an age greater than or equal to 18 yearsExample using a Java 8 lambda expression:
RichIterable<Person> selected = people.selectWith((Person person, Integer age) -> person.getAge()>= age, Integer.valueOf(18));Example using an anonymous inner class:
RichIterable<Person> selected = people.selectWith(new Predicate2<Person, Integer>() { public boolean accept(Person person, Integer age) { return person.getAge()>= age; } }, Integer.valueOf(18));- Specified by:
selectWithin interfaceRichIterable<T>- Parameters:
predicate- aPredicate2to use as the select criteriaparameter- a parameter to pass in for evaluation of the second argumentPinpredicate- See Also:
-
reject
Description copied from interface:RichIterableReturns all elements of the source collection that return false when evaluating of the predicate. This method is also sometimes called filterNot and is the equivalent of calling iterable.select(Predicates.not(predicate)).Example using a Java 8 lambda expression:
RichIterable<Person> rejected = people.reject(person -> person.person.getLastName().equals("Smith"));Example using an anonymous inner class:
RichIterable<Person> rejected = people.reject(new Predicate<Person>() { public boolean accept(Person person) { return person.person.getLastName().equals("Smith"); } });- Specified by:
rejectin interfaceRichIterable<T>- Parameters:
predicate- aPredicateto use as the reject criteria- Returns:
- a RichIterable that contains elements that cause
Predicate.accept(Object)method to evaluate to false
-
rejectWith
Description copied from interface:RichIterableSimilar toRichIterable.reject(Predicate), except with an evaluation parameter for the second generic argument inPredicate2.E.g. return a
Collectionof Person elements where the person has an age greater than or equal to 18 yearsExample using a Java 8 lambda expression:
RichIterable<Person> rejected = people.rejectWith((Person person, Integer age) -> person.getAge() < age, Integer.valueOf(18));Example using an anonymous inner class:
MutableList<Person> rejected = people.rejectWith(new Predicate2<Person, Integer>() { public boolean accept(Person person, Integer age) { return person.getAge() < age; } }, Integer.valueOf(18));- Specified by:
rejectWithin interfaceRichIterable<T>- Parameters:
predicate- aPredicate2to use as the select criteriaparameter- a parameter to pass in for evaluation of the second argumentPinpredicate- See Also:
-
partition
Description copied from interface:RichIterableFilters a collection into a PartitionedIterable based on the evaluation of the predicate.Example using a Java 8 lambda expression:
PartitionIterable<Person> newYorkersAndNonNewYorkers = people.partition(person -> person.getAddress().getState().getName().equals("New York"));Example using an anonymous inner class:
PartitionIterable<Person> newYorkersAndNonNewYorkers = people.partition(new Predicate<Person>() { public boolean accept(Person person) { return person.getAddress().getState().getName().equals("New York"); } });- Specified by:
partitionin interfaceRichIterable<T>
-
partitionWith
Description copied from interface:RichIterableFilters a collection into a PartitionIterable based on the evaluation of the predicate.Example using a Java 8 lambda expression:
PartitionIterable<Person> newYorkersAndNonNewYorkers = people.partitionWith((Person person, String state) -> person.getAddress().getState().getName().equals(state), "New York");Example using an anonymous inner class:
PartitionIterable<Person> newYorkersAndNonNewYorkers = people.partitionWith(new Predicate2<Person, String>() { public boolean accept(Person person, String state) { return person.getAddress().getState().getName().equals(state); } }, "New York");- Specified by:
partitionWithin interfaceRichIterable<T>
-
selectInstancesOf
Description copied from interface:RichIterableReturns all elements of the source collection that are instances of the Classclazz.RichIterable<Integer> integers = List.mutable.with(new Integer(0), new Long(0L), new Double(0.0)).selectInstancesOf(Integer.class);- Specified by:
selectInstancesOfin interfaceRichIterable<T>
-
groupBy
Description copied from interface:RichIterableFor each element of the iterable, the function is evaluated and the results of these evaluations are collected into a new multimap, where the transformed value is the key and the original values are added to the same (or similar) species of collection as the source iterable.Example using a Java 8 method reference:
Multimap<String, Person> peopleByLastName = people.groupBy(Person::getLastName);Example using an anonymous inner class:
Multimap<String, Person> peopleByLastName = people.groupBy(new Function<Person, String>() { public String valueOf(Person person) { return person.getLastName(); } });- Specified by:
groupByin interfaceRichIterable<T>
-
groupByEach
Description copied from interface:RichIterableSimilar toRichIterable.groupBy(Function), except the result of evaluating function will return a collection of keys for each value.- Specified by:
groupByEachin interfaceRichIterable<T>
-
zipWithIndex
SetIterable<Pair<T,Integer>> zipWithIndex()Description copied from interface:RichIterableZips thisRichIterablewith its indices.- Specified by:
zipWithIndexin interfaceRichIterable<T>- Returns:
- A new
RichIterablecontaining pairs consisting of all elements of thisRichIterablepaired with their index. Indices start at 0. - See Also:
-
forEachWithOccurrences
For each distinct item, with the number of occurrences, execute the specified procedure. -
anySatisfyWithOccurrences
Returns true if the predicate evaluates to true for any element of the Bag. Returns false if the Bag is empty or if no element returns true for the predicate.- Since:
- 11.0
-
allSatisfyWithOccurrences
Returns true if the predicate evaluates to true for all elements of the Bag. Returns false if the Bag is empty or if not all elements return true for the predicate.- Since:
- 11.0
-
noneSatisfyWithOccurrences
Returns true if the Bag is empty or if the predicate evaluates to false for all elements of the Bag. Returns false if the predicate evaluates to true for at least one element of the Bag.- Since:
- 11.0
-
detectWithOccurrences
Returns an element of the Bag that satisfies the predicate or null if such an element does not exist- Since:
- 11.0
-
occurrencesOf
The occurrences of a distinct item in the bag. -
selectByOccurrences
Returns all elements of the bag that have a number of occurrences that satisfy the predicate.- Since:
- 3.0
-
selectDuplicates
Returns all elements of the bag that have more than one occurrence.- Since:
- 9.2
-
selectUnique
SetIterable<T> selectUnique()Returns a set containing all elements of the bag that have exactly one occurrence.- Since:
- 9.2
-
topOccurrences
Returns thecountmost frequently occurring items. In the event of a tie, all the items with the number of occurrences that match the occurrences of the last item will be returned.- Since:
- 6.0
-
bottomOccurrences
Returns thecountleast frequently occurring items. In the event of a tie, all of the items with the number of occurrences that match the occurrences of the last item will be returned.- Since:
- 6.0
-
sizeDistinct
int sizeDistinct()The size of the Bag when counting only distinct elements. -
toMapOfItemToCount
MapIterable<T,Integer> toMapOfItemToCount()Converts the Bag to a Map of the Item type to its count as an Integer. -
toStringOfItemToCount
String toStringOfItemToCount()Returns a string representation of this bag. The string representation consists of a list of element-count mappings.Assert.assertEquals("{1=1, 2=2, 3=3}", Bags.mutable.with(1, 2, 2, 3, 3, 3).toStringOfItemToCount());This string representation is similar toAbstractMap.toString(), notRichIterable.toString(), whereas thetoString()implementation for a Bag is consistent withRichIterable.toString().- Returns:
- a string representation of this bag
- Since:
- 3.0
-
toImmutable
ImmutableBagIterable<T> toImmutable() -
distinctView
Returns an unmodifiable view on the distinct elements with the same complexity as the Bag implementation.- Returns:
- an unmodifiable view on the distinct elements of the Bag.
- Since:
- 11.1
-
summarizeInt
Description copied from interface:RichIterableReturns the result of summarizing the value returned from applying the IntFunction to each element of the iterable.IntSummaryStatistics stats = Lists.mutable.with(1, 2, 3).summarizeInt(Integer::intValue);- Specified by:
summarizeIntin interfaceRichIterable<T>- Since:
- 8.0
-
summarizeFloat
Description copied from interface:RichIterableReturns the result of summarizing the value returned from applying the FloatFunction to each element of the iterable.DoubleSummaryStatistics stats = Lists.mutable.with(1, 2, 3).summarizeFloat(Integer::floatValue);- Specified by:
summarizeFloatin interfaceRichIterable<T>- Since:
- 8.0
-
summarizeLong
Description copied from interface:RichIterableReturns the result of summarizing the value returned from applying the LongFunction to each element of the iterable.LongSummaryStatistics stats = Lists.mutable.with(1, 2, 3).summarizeLong(Integer::longValue);- Specified by:
summarizeLongin interfaceRichIterable<T>- Since:
- 8.0
-
summarizeDouble
Description copied from interface:RichIterableReturns the result of summarizing the value returned from applying the DoubleFunction to each element of the iterable.DoubleSummaryStatistics stats = Lists.mutable.with(1, 2, 3).summarizeDouble(Integer::doubleValue);- Specified by:
summarizeDoublein interfaceRichIterable<T>- Since:
- 8.0
-
reduceInPlace
This method produces the equivalent result asStream.collect(Collector).- Specified by:
reduceInPlacein interfaceRichIterable<T>- Since:
- 8.0
-
reduceInPlace
This method produces the equivalent result asStream.collect(Supplier, BiConsumer, BiConsumer).- Specified by:
reduceInPlacein interfaceRichIterable<T>- Since:
- 8.0
-
collectWithOccurrences
<V> RichIterable<V> collectWithOccurrences(ObjectIntToObjectFunction<? super T, ? extends V> function) Iterates over the unique elements and their occurrences and collects the results of applying the specified function.- Since:
- 10.0
-
collectWithOccurrences
default <V,R extends Collection<V>> R collectWithOccurrences(ObjectIntToObjectFunction<? super T, ? extends V> function, R target) Iterates over the unique elements and their occurrences and collects the results of applying the specified function into the target collection.- Since:
- 9.1.
-
aggregateBy
default <K,V, R aggregateByR extends MutableMapIterable<K, V>> (Function<? super T, ? extends K> groupBy, Function0<? extends V> zeroValueFactory, Function2<? super V, ? super T, ? extends V> nonMutatingAggregator, R target) Applies an aggregate function over the iterable grouping results into the target map based on the specific groupBy function. Aggregate results are allowed to be immutable as they will be replaced in place in the map. A second function specifies the initial "zero" aggregate value to work with (i.e. Integer.valueOf(0)). This method is overridden and optimized for Bag to use forEachWithOccurrences instead of forEach.- Specified by:
aggregateByin interfaceRichIterable<T>- Since:
- 10.3
-