<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Sat Aug 08 22:45:01 CDT 2020 -->
<title>MutableListMultimap (Eclipse Collections - 10.3.0)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-08-08">
<meta name="description" content="declaration: package: org.eclipse.collections.api.multimap.list, interface: MutableListMultimap">
<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};
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/MutableListMultimap.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.list</a></div>
<h1 title="Interface MutableListMultimap" class="title">Interface MutableListMultimap&lt;K,&#8203;V&gt;</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</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="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;K,&#8203;V&gt;</code>, <code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;K,&#8203;V&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../../impl/multimap/list/AbstractMutableListMultimap.html" title="class in org.eclipse.collections.impl.multimap.list">AbstractMutableListMultimap</a></code>, <code><a href="../../../impl/multimap/list/FastListMultimap.html" title="class in org.eclipse.collections.impl.multimap.list">FastListMultimap</a></code>, <code><a href="../../../impl/multimap/list/MultiReaderFastListMultimap.html" title="class in org.eclipse.collections.impl.multimap.list">MultiReaderFastListMultimap</a></code>, <code><a href="../../../impl/multimap/list/SynchronizedListMultimap.html" title="class in org.eclipse.collections.impl.multimap.list">SynchronizedListMultimap</a></code>, <code><a href="../../../impl/multimap/list/SynchronizedPutFastListMultimap.html" title="class in org.eclipse.collections.impl.multimap.list">SynchronizedPutFastListMultimap</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">MutableListMultimap&lt;K,&#8203;V&gt;</span>
extends <a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;K,&#8203;V&gt;, <a href="../MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../bag/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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../bag/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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../bag/MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(K)">get</a></span>&#8203;(<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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><a href="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="rowColor" id="i9">
<td class="colFirst"><code><a href="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="altColor" id="i10">
<td class="colFirst"><code><a href="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="rowColor" id="i11">
<td class="colFirst"><code><a href="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;&nbsp;values)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="rowColor" id="i13">
<td class="colFirst"><code><a href="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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.list.<a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.multimap.list.ListMultimap">
<!--   -->
</a><code><a href="ListMultimap.html#toImmutable()">toImmutable</a>, <a href="ListMultimap.html#toMutable()">toMutable</a></code></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>
</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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">replaceValues</span>&#8203;(<span class="arguments"><a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;&nbsp;values)</span></div>
<dl>
<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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#newEmpty()">newEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">get</span>&#8203;(<span class="arguments"><a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#get(K)">get</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../../list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</span>&nbsp;<span class="memberName">getIfAbsentPutAll</span>&#8203;(<span class="arguments"><a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flip()">flip</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../bag/MutableBagMultimap.html" title="interface in org.eclipse.collections.api.multimap.bag">MutableBagMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#flip()">flip</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#selectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#rejectKeysValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#selectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">selectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#rejectKeysMultiValues(org.eclipse.collections.api.block.predicate.Predicate2)">rejectKeysMultiValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../bag/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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;? super <a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#collectKeysValues(org.eclipse.collections.api.block.function.Function2)">collectKeysValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../bag/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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.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="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.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="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="ListMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterableMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">OrderedIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">V</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/ReversibleIterableMultimap.html#collectValues(org.eclipse.collections.api.block.function.Function)">collectValues</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/ReversibleIterableMultimap.html" title="interface in org.eclipse.collections.api.multimap.ordered">ReversibleIterableMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="MutableListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">MutableListMultimap</a>&lt;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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="../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="MutableListMultimap.html" title="type parameter in MutableListMultimap">K</a>,&#8203;<a href="MutableListMultimap.html" title="type parameter in MutableListMultimap">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/MutableListMultimap.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>
