<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Thu Aug 20 21:25:36 CDT 2020 -->
<title>MutableBagMultimap (Eclipse Collections - 10.4.0)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-08-20">
<meta name="description" content="declaration: package: org.eclipse.collections.api.multimap.bag, interface: MutableBagMultimap">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MutableBagMultimap.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!--   -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.collections.api.multimap.bag</a></div>
<h1 title="Interface MutableBagMultimap" class="title">Interface MutableBagMultimap&lt;K,&#8203;V&gt;</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;K,&#8203;V&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../../impl/multimap/bag/AbstractMutableBagMultimap.html" title="class in org.eclipse.collections.impl.multimap.bag">AbstractMutableBagMultimap</a></code>, <code><a href="../../../impl/multimap/bag/HashBagMultimap.html" title="class in org.eclipse.collections.impl.multimap.bag">HashBagMultimap</a></code>, <code><a href="../../../impl/multimap/bag/strategy/HashBagMultimapWithHashingStrategy.html" title="class in org.eclipse.collections.impl.multimap.bag.strategy">HashBagMultimapWithHashingStrategy</a></code>, <code><a href="../../../impl/multimap/bag/MultiReaderHashBagMultimap.html" title="class in org.eclipse.collections.impl.multimap.bag">MultiReaderHashBagMultimap</a></code>, <code><a href="../../../impl/multimap/bag/SynchronizedBagMultimap.html" title="class in org.eclipse.collections.impl.multimap.bag">SynchronizedBagMultimap</a></code>, <code><a href="../../../impl/multimap/bag/SynchronizedPutHashBagMultimap.html" title="class in org.eclipse.collections.impl.multimap.bag">SynchronizedPutHashBagMultimap</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">MutableBagMultimap&lt;K,&#8203;V&gt;</span>
extends <a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;K,&#8203;V&gt;, <a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;K,&#8203;V&gt;</pre>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!--   -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asSynchronized()">asSynchronized</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a synchronized wrapper backed by this multimap.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>&lt;K2,&#8203;
V2&gt;&nbsp;<a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;K2,&#8203;V2&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></span>&#8203;(<a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? extends K2&gt;&nbsp;keyFunction,
<a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;? extends V2&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new multimap with the results of applying the specified keyFunction and valueFunction on each key and corresponding values of the source multimap.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>&lt;K2,&#8203;
V2&gt;&nbsp;<a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;K2,&#8203;V2&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></span>&#8203;(<a href="../../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;<a href="../../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;K2,&#8203;V2&gt;&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns a new multimap with the results of applying the specified function on each key and value of the source
 multimap.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>&lt;V2&gt;&nbsp;<a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;V2&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></span>&#8203;(<a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;? extends V2&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns a new multimap with the results of applying the specified function on each value of the source
 multimap.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flip()">flip</a></span>()</code></th>
<td class="colLast">
<div class="block">Given a Multimap from Domain <code>-&gt;</code> Range return a multimap from Range <code>-&gt;</code> Domain.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(K)">get</a></span>&#8203;(<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Returns a view of all values associated with the given key.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPutAll(K,java.lang.Iterable)">getIfAbsentPutAll</a></span>&#8203;(<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;values)</code></th>
<td class="colLast">
<div class="block">Puts values into multimap if there are no values already associated with key.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newEmpty()">newEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a new instance of the same implementation type, using the default capacity and growth parameters.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putOccurrences(K,V,int)">putOccurrences</a></span>&#8203;(<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&nbsp;value,
int&nbsp;occurrences)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></span>&#8203;(<a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source multimap that don't satisfy the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></span>&#8203;(<a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source multimap that don't satisfy the predicate.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeAll(java.lang.Object)">removeAll</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#replaceValues(K,java.lang.Iterable)">replaceValues</a></span>&#8203;(<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;values)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></span>&#8203;(<a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source multimap that satisfies the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></span>&#8203;(<a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source multimap that satisfies the predicate.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.multimap.<a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.multimap.Multimap">
<!--   -->
</a><code><a href="../Multimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">collectKeyMultiValues</a>, <a href="../Multimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2,R)">collectKeysValues</a>, <a href="../Multimap.html#collectValues(org.eclipse.collections.api.block.function.Function,R)">collectValues</a>, <a href="../Multimap.html#containsKey(java.lang.Object)">containsKey</a>, <a href="../Multimap.html#containsKeyAndValue(java.lang.Object,java.lang.Object)">containsKeyAndValue</a>, <a href="../Multimap.html#containsValue(java.lang.Object)">containsValue</a>, <a href="../Multimap.html#equals(java.lang.Object)">equals</a>, <a href="../Multimap.html#forEachKey(org.eclipse.collections.api.block.procedure.Procedure)">forEachKey</a>, <a href="../Multimap.html#forEachKeyMultiValues(org.eclipse.collections.api.block.procedure.Procedure2)">forEachKeyMultiValues</a>, <a href="../Multimap.html#forEachKeyValue(org.eclipse.collections.api.block.procedure.Procedure2)">forEachKeyValue</a>, <a href="../Multimap.html#forEachValue(org.eclipse.collections.api.block.procedure.Procedure)">forEachValue</a>, <a href="../Multimap.html#hashCode()">hashCode</a>, <a href="../Multimap.html#isEmpty()">isEmpty</a>, <a href="../Multimap.html#keyBag()">keyBag</a>, <a href="../Multimap.html#keyMultiValuePairsView()">keyMultiValuePairsView</a>, <a href="../Multimap.html#keySet()">keySet</a>, <a href="../Multimap.html#keysView()">keysView</a>, <a href="../Multimap.html#keyValuePairsView()">keyValuePairsView</a>, <a href="../Multimap.html#multiValuesView()">multiValuesView</a>, <a href="../Multimap.html#notEmpty()">notEmpty</a>, <a href="../Multimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2,R)">rejectKeysMultiValues</a>, <a href="../Multimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2,R)">rejectKeysValues</a>, <a href="../Multimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2,R)">selectKeysMultiValues</a>, <a href="../Multimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2,R)">selectKeysValues</a>, <a href="../Multimap.html#size()">size</a>, <a href="../Multimap.html#sizeDistinct()">sizeDistinct</a>, <a href="../Multimap.html#toMap()">toMap</a>, <a href="../Multimap.html#toMap(org.eclipse.collections.api.block.function.Function0)">toMap</a>, <a href="../Multimap.html#valuesView()">valuesView</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.multimap.<a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.multimap.MutableMultimap">
<!--   -->
</a><code><a href="../MutableMultimap.html#add(org.eclipse.collections.api.tuple.Pair)">add</a>, <a href="../MutableMultimap.html#clear()">clear</a>, <a href="../MutableMultimap.html#put(K,V)">put</a>, <a href="../MutableMultimap.html#putAll(K,java.lang.Iterable)">putAll</a>, <a href="../MutableMultimap.html#putAll(org.eclipse.collections.api.multimap.Multimap)">putAll</a>, <a href="../MutableMultimap.html#putAllPairs(java.lang.Iterable)">putAllPairs</a>, <a href="../MutableMultimap.html#putAllPairs(org.eclipse.collections.api.tuple.Pair...)">putAllPairs</a>, <a href="../MutableMultimap.html#remove(java.lang.Object,java.lang.Object)">remove</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.multimap.bag.<a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.multimap.bag.UnsortedBagMultimap">
<!--   -->
</a><code><a href="UnsortedBagMultimap.html#toImmutable()">toImmutable</a>, <a href="UnsortedBagMultimap.html#toMutable()">toMutable</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<li class="blockList">
<section class="methodDetails"><a id="method.detail">
<!--   -->
</a>
<h2>Method Details</h2>
<ul class="blockList">
<li class="blockList">
<section class="detail">
<h3><a id="replaceValues(java.lang.Object,java.lang.Iterable)">
<!--   -->
</a><a id="replaceValues(K,java.lang.Iterable)">replaceValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">replaceValues</span>&#8203;(<span class="arguments"><a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;values)</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#replaceValues(K,java.lang.Iterable)">replaceValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#replaceValues(K,java.lang.Iterable)">replaceValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeAll(java.lang.Object)">removeAll</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">removeAll</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;key)</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#removeAll(java.lang.Object)">removeAll</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#removeAll(java.lang.Object)">removeAll</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="newEmpty()">newEmpty</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">newEmpty</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#newEmpty()">Multimap</a></code></span></div>
<div class="block">Creates a new instance of the same implementation type, using the default capacity and growth parameters.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="get(java.lang.Object)">
<!--   -->
</a><a id="get(K)">get</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">get</span>&#8203;(<span class="arguments"><a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#get(K)">Multimap</a></code></span></div>
<div class="block">Returns a view of all values associated with the given key.
 <p>If the given key does not exist, an empty <a href="../../RichIterable.html" title="interface in org.eclipse.collections.api"><code>RichIterable</code></a> is returned.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to search for</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIfAbsentPutAll(java.lang.Object,java.lang.Iterable)">
<!--   -->
</a><a id="getIfAbsentPutAll(K,java.lang.Iterable)">getIfAbsentPutAll</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../../bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">getIfAbsentPutAll</span>&#8203;(<span class="arguments"><a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;? extends <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;values)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../MutableMultimap.html#getIfAbsentPutAll(K,java.lang.Iterable)">MutableMultimap</a></code></span></div>
<div class="block">Puts values into multimap if there are no values already associated with key.
 Then returns a view of the values associated with key, like the result of <a href="../Multimap.html#get(K)"><code>Multimap.get(Object)</code></a></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#getIfAbsentPutAll(K,java.lang.Iterable)">getIfAbsentPutAll</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#getIfAbsentPutAll(K,java.lang.Iterable)">getIfAbsentPutAll</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="putOccurrences(java.lang.Object,java.lang.Object,int)">
<!--   -->
</a><a id="putOccurrences(K,V,int)">putOccurrences</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">putOccurrences</span>&#8203;(<span class="arguments"><a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&nbsp;key,
<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&nbsp;value,
int&nbsp;occurrences)</span></div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flip()">flip</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>&gt;</span>&nbsp;<span class="memberName">flip</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#flip()">Multimap</a></code></span></div>
<div class="block">Given a Multimap from Domain <code>-&gt;</code> Range return a multimap from Range <code>-&gt;</code> Domain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#flip()">flip</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#flip()">flip</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#flip()">flip</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#flip()">flip</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">selectKeysValues</span>&#8203;(<span class="arguments"><a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">Multimap</a></code></span></div>
<div class="block">Returns all elements of the source multimap that satisfies the predicate. This method is also
 commonly called filter.

 <pre>e.g.
 return multimap.<b>selectKeysValues</b>(new Predicate2&lt;Integer, Person&gt;()
 {
     public boolean accept(Integer age, Person person)
     {
         return (age &gt;= 18)
                  &amp;&amp; (person.getAddress().getCity().equals("Metuchen"));
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements as a result of the select criteria</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">rejectKeysValues</span>&#8203;(<span class="arguments"><a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">Multimap</a></code></span></div>
<div class="block">Returns all elements of the source multimap that don't satisfy the predicate.

 <pre>e.g.
 return multimap.<b>rejectKeysValues</b>(new Predicate2&lt;Integer, Person&gt;()
 {
     public boolean accept(Integer age, Person person)
     {
         return (age &gt;= 18)
                  &amp;&amp; (person.getAddress().getCity().equals("Metuchen"));
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the reject criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements that don't satisfy the <code>predicate</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">selectKeysMultiValues</span>&#8203;(<span class="arguments"><a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">Multimap</a></code></span></div>
<div class="block">Returns all elements of the source multimap that satisfies the predicate. This method is also
 commonly called filter.

 <pre>e.g.
 return multimap.<b>selectKeysMultiValues</b>(new Predicate2&lt;Integer, Iterable&lt;Person&gt;&gt;()
 {
     public boolean accept(Integer age, Iterable&lt;Person&gt; values)
     {
         return (age &gt;= 18)
                  &amp;&amp; ((RichIterable&lt;Person&gt;)values.size() &gt;= 2);
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements as a result of the select criteria</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">rejectKeysMultiValues</span>&#8203;(<span class="arguments"><a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">Multimap</a></code></span></div>
<div class="block">Returns all elements of the source multimap that don't satisfy the predicate.

 <pre>e.g.
 return multimap.<b>rejectKeysMultiValues</b>(new Predicate2&lt;Integer, Iterable&lt;Person&gt;&gt;()
 {
     public boolean accept(Integer age, Iterable&lt;Person&gt; values)
     {
         return (age &gt;= 18)
                  &amp;&amp; ((RichIterable&lt;Person&gt;)values.size() &gt;= 2);
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="BagMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="BagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">BagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the reject criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements that don't satisfy the <code>predicate</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;K2,&#8203;
V2&gt;</span>&nbsp;<span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;K2,&#8203;V2&gt;</span>&nbsp;<span class="memberName">collectKeysValues</span>&#8203;(<span class="arguments"><a href="../../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;<a href="../../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;K2,&#8203;V2&gt;&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">Multimap</a></code></span></div>
<div class="block">Returns a new multimap with the results of applying the specified function on each key and value of the source
 multimap. This method is also commonly called transform or map.

 <pre>e.g.
 return multimap.collectKeysValues(new Function2&lt;Integer, Person, Pair&lt;String, String&gt;&gt;()
 {
     public Pair&lt;String, String&gt; valueOf(Integer age, Person person)
     {
         return Tuples.pair(age.toString(), person.getLastName());
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - a <a href="../../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function"><code>Function2</code></a> to use for transformation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements as a result of the transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;K2,&#8203;
V2&gt;</span>&nbsp;<span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;K2,&#8203;V2&gt;</span>&nbsp;<span class="memberName">collectKeyMultiValues</span>&#8203;(<span class="arguments"><a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;? extends K2&gt;&nbsp;keyFunction,
<a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;? extends V2&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">Multimap</a></code></span></div>
<div class="block">Returns a new multimap with the results of applying the specified keyFunction and valueFunction on each key and corresponding values of the source multimap.
 This method is also commonly called transform or map.

 <pre>e.g.
 return multimap.collectKeyMultiValues(each -&gt; each + 1, Person::getLastName);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#collectKeyMultiValues(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">collectKeyMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keyFunction</code> - <a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to use transformation to get the key</dd>
<dd><code>valueFunction</code> - <a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to use transformation to get the values</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new <code>Multimap</code>, which contains elements as a result of the transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V2&gt;</span>&nbsp;<span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;V2&gt;</span>&nbsp;<span class="memberName">collectValues</span>&#8203;(<span class="arguments"><a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>,&#8203;? extends V2&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../Multimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">Multimap</a></code></span></div>
<div class="block">Returns a new multimap with the results of applying the specified function on each value of the source
 multimap. This method is also commonly called transform or map.

 <pre>e.g.
 return multimap.collectValues(new Function&lt;Person, String&gt;()
 {
     public String valueOf(Person person)
     {
         return person.getLastName();
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../Multimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="../Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedBagMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">UnsortedBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - a <a href="../../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to use for transformation</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Multimap</code>, which contains elements as a result of the transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asSynchronized()">asSynchronized</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">asSynchronized</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../MutableMultimap.html#asSynchronized()">MutableMultimap</a></code></span></div>
<div class="block">Returns a synchronized wrapper backed by this multimap.

 The preferred way of iterating over a synchronized multimap is to use the forEachKey(), forEachValue(),
 forEachKeyValue() and forEachKeyMultiValues methods which are properly synchronized internally.
 <pre>
  MutableMultimap synchedMultimap = multimap.asSynchronized();

  synchedMultimap.forEachKey(key -&gt; ... );
  synchedMultimap.forEachValue(value -&gt; ... );
  synchedMultimap.forEachKeyValue((key, value) -&gt; ... );
  synchedMultimap.forEachKeyMultiValues((key, values) -&gt; ... );
 </pre>
 <p>
 If you want to iterate imperatively over the keySet(), keysView(), valuesView(), or other views, you will
 need to protect the iteration by wrapping the code in a synchronized block on the multimap.
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="MutableBagIterableMultimap.html#asSynchronized()">asSynchronized</a></code>&nbsp;in interface&nbsp;<code><a href="MutableBagIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagIterableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../MutableMultimap.html#asSynchronized()">asSynchronized</a></code>&nbsp;in interface&nbsp;<code><a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">K</a>,&#8203;<a href="MutableBagMultimap.html" title="type parameter in MutableBagMultimap">V</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a synchronized view of this multimap.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../map/MutableMapIterable.html#asSynchronized()"><code>MutableMapIterable.asSynchronized()</code></a></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
</div>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/MutableBagMultimap.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 2004&#x2013;2020. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>
