<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Thu Aug 20 21:25:36 CDT 2020 -->
<title>MutableIntShortMap (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.map.primitive, interface: MutableIntShortMap">
<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":18,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":18,"i19":6,"i20":6,"i21":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default 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/MutableIntShortMap.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.map.primitive</a></div>
<h1 title="Interface MutableIntShortMap" class="title">Interface MutableIntShortMap</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a></code>, <code><a href="MutableShortValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableShortValuesMap</a></code>, <code><a href="../../PrimitiveIterable.html" title="interface in org.eclipse.collections.api">PrimitiveIterable</a></code>, <code><a href="../../ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</a></code>, <code><a href="ShortValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">ShortValuesMap</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../../impl/map/mutable/primitive/IntShortHashMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">IntShortHashMap</a></code>, <code><a href="../../../impl/map/mutable/primitive/SynchronizedIntShortMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">SynchronizedIntShortMap</a></code>, <code><a href="../../../impl/map/mutable/primitive/UnmodifiableIntShortMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">UnmodifiableIntShortMap</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">MutableIntShortMap</span>
extends <a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a>, <a href="MutableShortValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableShortValuesMap</a></pre>
<div class="block">This file was automatically generated from template file mutablePrimitivePrimitiveMap.stg.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.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><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default 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>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToValue(int,short)">addToValue</a></span>&#8203;(int&nbsp;key,
short&nbsp;toBeAdded)</code></th>
<td class="colLast">
<div class="block">Increments and updates the value associated with the key, if a value exists, or
 sets the value to be the specified value if one does not.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></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 view of this map, delegating all operations to this map but
 ensuring only one caller has access to the map at a time.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asUnmodifiable()">asUnmodifiable</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns an unmodifiable view of this map, delegating all read-only operations to this
 map and throwing an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>UnsupportedOperationException</code></a> for all mutating operations.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="MutableShortIntMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableShortIntMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flipUniqueValues()">flipUniqueValues</a></span>()</code></th>
<td class="colLast">
<div class="block">Return the ShortIntMap that is obtained by flipping the direction of this map and making the associations
 from value to key.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPut(int,short)">getIfAbsentPut</a></span>&#8203;(int&nbsp;key,
short&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 associates a value with the key.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPut(int,org.eclipse.collections.api.block.function.primitive.ShortFunction0)">getIfAbsentPut</a></span>&#8203;(int&nbsp;key,
<a href="../../block/function/primitive/ShortFunction0.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction0</a>&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 invokes the supplier and associates the result with the key.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>&lt;P&gt;&nbsp;short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPutWith(int,org.eclipse.collections.api.block.function.primitive.ShortFunction,P)">getIfAbsentPutWith</a></span>&#8203;(int&nbsp;key,
<a href="../../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super P&gt;&nbsp;function,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 invokes the value function with the parameter and associates the result with the key.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPutWithKey(int,org.eclipse.collections.api.block.function.primitive.IntToShortFunction)">getIfAbsentPutWithKey</a></span>&#8203;(int&nbsp;key,
<a href="../../block/function/primitive/IntToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntToShortFunction</a>&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 associates the result of invoking the value function with the key.</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="#put(int,short)">put</a></span>&#8203;(int&nbsp;key,
short&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Associates a value with the specified key.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putAll(org.eclipse.collections.api.map.primitive.IntShortMap)">putAll</a></span>&#8203;(<a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a>&nbsp;map)</code></th>
<td class="colLast">
<div class="block">Puts all of the key/value mappings from the specified map into this map.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>default void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#putPair(org.eclipse.collections.api.tuple.primitive.IntShortPair)">putPair</a></span>&#8203;(<a href="../../tuple/primitive/IntShortPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">IntShortPair</a>&nbsp;keyValuePair)</code></th>
<td class="colLast">
<div class="block">This method allows MutableIntShortMap the ability to add an element in the form of IntShortPair.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reject(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">reject</a></span>&#8203;(<a href="../../block/predicate/primitive/IntShortPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">IntShortPredicate</a>&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Return a copy of this map containing only the key/value pairs that do not match the
 predicate.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#remove(int)">remove</a></span>&#8203;(int&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Removes the mapping associated with the key, if one exists, from the map.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeKey(int)">removeKey</a></span>&#8203;(int&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Removes the mapping associated with the key, if one exists, from the map.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeKeyIfAbsent(int,short)">removeKeyIfAbsent</a></span>&#8203;(int&nbsp;key,
short&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Removes the mapping associated with the key, if one exists, from the map,
 returning the previously associated value with the key.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">select</a></span>&#8203;(<a href="../../block/predicate/primitive/IntShortPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">IntShortPredicate</a>&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Return a copy of this map containing only the key/value pairs that match the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>short</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateValue(int,short,org.eclipse.collections.api.block.function.primitive.ShortToShortFunction)">updateValue</a></span>&#8203;(int&nbsp;key,
short&nbsp;initialValueIfAbsent,
<a href="../../block/function/primitive/ShortToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortToShortFunction</a>&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Updates or sets the value associated with the key by applying the function to the
 existing value, if one exists, or to the specified initial value if one does not.</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateValues(org.eclipse.collections.api.block.function.primitive.IntShortToShortFunction)">updateValues</a></span>&#8203;(<a href="../../block/function/primitive/IntShortToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntShortToShortFunction</a>&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Updates the values in-place.</div>
</td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code>default <a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withAllKeyValues(java.lang.Iterable)">withAllKeyValues</a></span>&#8203;(<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="../../tuple/primitive/IntShortPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">IntShortPair</a>&gt;&nbsp;keyValuePairs)</code></th>
<td class="colLast">
<div class="block">Puts all of the key/value mappings from the specified pairs into this map.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withKeyValue(int,short)">withKeyValue</a></span>&#8203;(int&nbsp;key,
short&nbsp;value)</code></th>
<td class="colLast">
<div class="block">Associates a value with the specified key.</div>
</td>
</tr>
<tr class="altColor" id="i20">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withoutAllKeys(org.eclipse.collections.api.IntIterable)">withoutAllKeys</a></span>&#8203;(<a href="../../IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</a>&nbsp;keys)</code></th>
<td class="colLast">
<div class="block">Removes the mappings associated with all the keys, if they exist, from this map.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withoutKey(int)">withoutKey</a></span>&#8203;(int&nbsp;key)</code></th>
<td class="colLast">
<div class="block">Removes the mapping associated with the key, if one exists, from this map.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.map.primitive.<a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.IntShortMap">
<!--   -->
</a><code><a href="IntShortMap.html#containsKey(int)">containsKey</a>, <a href="IntShortMap.html#equals(java.lang.Object)">equals</a>, <a href="IntShortMap.html#forEachKey(org.eclipse.collections.api.block.procedure.primitive.IntProcedure)">forEachKey</a>, <a href="IntShortMap.html#forEachKeyValue(org.eclipse.collections.api.block.procedure.primitive.IntShortProcedure)">forEachKeyValue</a>, <a href="IntShortMap.html#get(int)">get</a>, <a href="IntShortMap.html#getIfAbsent(int,short)">getIfAbsent</a>, <a href="IntShortMap.html#getOrThrow(int)">getOrThrow</a>, <a href="IntShortMap.html#hashCode()">hashCode</a>, <a href="IntShortMap.html#keySet()">keySet</a>, <a href="IntShortMap.html#keysView()">keysView</a>, <a href="IntShortMap.html#keyValuesView()">keyValuesView</a>, <a href="IntShortMap.html#toImmutable()">toImmutable</a>, <a href="IntShortMap.html#toString()">toString</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.map.primitive.<a href="MutableShortValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableShortValuesMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.MutableShortValuesMap">
<!--   -->
</a><code><a href="MutableShortValuesMap.html#clear()">clear</a>, <a href="MutableShortValuesMap.html#collect(org.eclipse.collections.api.block.function.primitive.ShortToObjectFunction)">collect</a>, <a href="MutableShortValuesMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">reject</a>, <a href="MutableShortValuesMap.html#select(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">select</a>, <a href="MutableShortValuesMap.html#shortIterator()">shortIterator</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../../PrimitiveIterable.html" title="interface in org.eclipse.collections.api">PrimitiveIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.PrimitiveIterable">
<!--   -->
</a><code><a href="../../PrimitiveIterable.html#appendString(java.lang.Appendable)">appendString</a>, <a href="../../PrimitiveIterable.html#appendString(java.lang.Appendable,java.lang.String)">appendString</a>, <a href="../../PrimitiveIterable.html#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a>, <a href="../../PrimitiveIterable.html#isEmpty()">isEmpty</a>, <a href="../../PrimitiveIterable.html#makeString()">makeString</a>, <a href="../../PrimitiveIterable.html#makeString(java.lang.String)">makeString</a>, <a href="../../PrimitiveIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a>, <a href="../../PrimitiveIterable.html#notEmpty()">notEmpty</a>, <a href="../../PrimitiveIterable.html#size()">size</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../../ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.ShortIterable">
<!--   -->
</a><code><a href="../../ShortIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">allSatisfy</a>, <a href="../../ShortIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">anySatisfy</a>, <a href="../../ShortIterable.html#asLazy()">asLazy</a>, <a href="../../ShortIterable.html#average()">average</a>, <a href="../../ShortIterable.html#averageIfEmpty(double)">averageIfEmpty</a>, <a href="../../ShortIterable.html#chunk(int)">chunk</a>, <a href="../../ShortIterable.html#collect(org.eclipse.collections.api.block.function.primitive.ShortToObjectFunction,R)">collect</a>, <a href="../../ShortIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.ShortToBooleanFunction,R)">collectBoolean</a>, <a href="../../ShortIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ShortToByteFunction,R)">collectByte</a>, <a href="../../ShortIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.ShortToCharFunction,R)">collectChar</a>, <a href="../../ShortIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.ShortToDoubleFunction,R)">collectDouble</a>, <a href="../../ShortIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.ShortToFloatFunction,R)">collectFloat</a>, <a href="../../ShortIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.ShortToIntFunction,R)">collectInt</a>, <a href="../../ShortIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.ShortToLongFunction,R)">collectLong</a>, <a href="../../ShortIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortToShortFunction,R)">collectShort</a>, <a href="../../ShortIterable.html#contains(short)">contains</a>, <a href="../../ShortIterable.html#containsAll(short...)">containsAll</a>, <a href="../../ShortIterable.html#containsAll(org.eclipse.collections.api.ShortIterable)">containsAll</a>, <a href="../../ShortIterable.html#count(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">count</a>, <a href="../../ShortIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate,short)">detectIfNone</a>, <a href="../../ShortIterable.html#each(org.eclipse.collections.api.block.procedure.primitive.ShortProcedure)">each</a>, <a href="../../ShortIterable.html#flatCollect(org.eclipse.collections.api.block.function.primitive.ShortToObjectFunction,R)">flatCollect</a>, <a href="../../ShortIterable.html#forEach(org.eclipse.collections.api.block.procedure.primitive.ShortProcedure)">forEach</a>, <a href="../../ShortIterable.html#injectInto(T,org.eclipse.collections.api.block.function.primitive.ObjectShortToObjectFunction)">injectInto</a>, <a href="../../ShortIterable.html#max()">max</a>, <a href="../../ShortIterable.html#maxIfEmpty(short)">maxIfEmpty</a>, <a href="../../ShortIterable.html#median()">median</a>, <a href="../../ShortIterable.html#medianIfEmpty(double)">medianIfEmpty</a>, <a href="../../ShortIterable.html#min()">min</a>, <a href="../../ShortIterable.html#minIfEmpty(short)">minIfEmpty</a>, <a href="../../ShortIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate)">noneSatisfy</a>, <a href="../../ShortIterable.html#reduce(org.eclipse.collections.api.block.function.primitive.LongShortToLongFunction)">reduce</a>, <a href="../../ShortIterable.html#reduceIfEmpty(org.eclipse.collections.api.block.function.primitive.LongShortToLongFunction,long)">reduceIfEmpty</a>, <a href="../../ShortIterable.html#reject(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate,R)">reject</a>, <a href="../../ShortIterable.html#select(org.eclipse.collections.api.block.predicate.primitive.ShortPredicate,R)">select</a>, <a href="../../ShortIterable.html#sum()">sum</a>, <a href="../../ShortIterable.html#summaryStatistics()">summaryStatistics</a>, <a href="../../ShortIterable.html#toArray()">toArray</a>, <a href="../../ShortIterable.html#toArray(short%5B%5D)">toArray</a>, <a href="../../ShortIterable.html#toBag()">toBag</a>, <a href="../../ShortIterable.html#toList()">toList</a>, <a href="../../ShortIterable.html#toSet()">toSet</a>, <a href="../../ShortIterable.html#toSortedArray()">toSortedArray</a>, <a href="../../ShortIterable.html#toSortedList()">toSortedList</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.map.primitive.<a href="ShortValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">ShortValuesMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.ShortValuesMap">
<!--   -->
</a><code><a href="ShortValuesMap.html#containsValue(short)">containsValue</a>, <a href="ShortValuesMap.html#forEachValue(org.eclipse.collections.api.block.procedure.primitive.ShortProcedure)">forEachValue</a>, <a href="ShortValuesMap.html#tap(org.eclipse.collections.api.block.procedure.primitive.ShortProcedure)">tap</a>, <a href="ShortValuesMap.html#values()">values</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="put(int,short)">put</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">put</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;value)</span></div>
<div class="block">Associates a value with the specified key. If a value is already associated
 with the key in this map, it will be replaced with <code>value</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the value to associate with <code>value</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="putPair(org.eclipse.collections.api.tuple.primitive.IntShortPair)">putPair</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">putPair</span>&#8203;(<span class="arguments"><a href="../../tuple/primitive/IntShortPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">IntShortPair</a>&nbsp;keyValuePair)</span></div>
<div class="block">This method allows MutableIntShortMap the ability to add an element in the form of IntShortPair.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>9.1.0</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#put(int,short)"><code>put(int, short)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="putAll(org.eclipse.collections.api.map.primitive.IntShortMap)">putAll</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">putAll</span>&#8203;(<span class="arguments"><a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a>&nbsp;map)</span></div>
<div class="block">Puts all of the key/value mappings from the specified map into this map. If this
 map already has a value associated with one of the keys in the map, it will be
 replaced with the value in <code>map</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>map</code> - the map to copy into this map</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="updateValues(org.eclipse.collections.api.block.function.primitive.IntShortToShortFunction)">updateValues</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">updateValues</span>&#8203;(<span class="arguments"><a href="../../block/function/primitive/IntShortToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntShortToShortFunction</a>&nbsp;function)</span></div>
<div class="block">Updates the values in-place.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - that takes a key and its value and that returns a new value for this key</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>10.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeKey(int)">removeKey</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">removeKey</span>&#8203;(<span class="arguments">int&nbsp;key)</span></div>
<div class="block">Removes the mapping associated with the key, if one exists, from the map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to remove</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#remove(int)"><code>remove(int)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="remove(int)">remove</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">remove</span>&#8203;(<span class="arguments">int&nbsp;key)</span></div>
<div class="block">Removes the mapping associated with the key, if one exists, from the map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to remove</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#removeKey(int)"><code>removeKey(int)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeKeyIfAbsent(int,short)">removeKeyIfAbsent</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">removeKeyIfAbsent</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;value)</span></div>
<div class="block">Removes the mapping associated with the key, if one exists, from the map,
 returning the previously associated value with the key. If no mapping
 existed for the key, the specified default value is returned.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to remove</dd>
<dd><code>value</code> - the default value to return if no mapping for the key exists</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value previously associated with the key, if one existed,
 or <code>value</code> if not</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIfAbsentPut(int,short)">getIfAbsentPut</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">getIfAbsentPut</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;value)</span></div>
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 associates a value with the key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the value to associate with <code>key</code> if no such mapping exists</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value associated with key, if one exists, or <code>value</code> if not</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIfAbsentPut(int,org.eclipse.collections.api.block.function.primitive.ShortFunction0)">getIfAbsentPut</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">getIfAbsentPut</span>&#8203;(<span class="arguments">int&nbsp;key,
<a href="../../block/function/primitive/ShortFunction0.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction0</a>&nbsp;function)</span></div>
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 invokes the supplier and associates the result with the key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>function</code> - the supplier that provides the value if no mapping exists for <code>key</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value associated with the key, if one exists, or the result of
 invoking <code>function</code> if not</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIfAbsentPutWithKey(int,org.eclipse.collections.api.block.function.primitive.IntToShortFunction)">getIfAbsentPutWithKey</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">getIfAbsentPutWithKey</span>&#8203;(<span class="arguments">int&nbsp;key,
<a href="../../block/function/primitive/IntToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntToShortFunction</a>&nbsp;function)</span></div>
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 associates the result of invoking the value function with the key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>function</code> - the function that provides the value if no mapping exists.
 The <code>key</code> will be passed as the argument to the function.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value associated with the key, if one exists, or the result of
 invoking <code>function</code> with <code>key</code> if not</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getIfAbsentPutWith(int,org.eclipse.collections.api.block.function.primitive.ShortFunction,java.lang.Object)">
<!--   -->
</a><a id="getIfAbsentPutWith(int,org.eclipse.collections.api.block.function.primitive.ShortFunction,P)">getIfAbsentPutWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">short</span>&nbsp;<span class="memberName">getIfAbsentPutWith</span>&#8203;(<span class="arguments">int&nbsp;key,
<a href="../../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super P&gt;&nbsp;function,
P&nbsp;parameter)</span></div>
<div class="block">Retrieves the value associated with the key if one exists; if it does not,
 invokes the value function with the parameter and associates the result with the key.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>P</code> - the type of the value function's <code>parameter</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>function</code> - the function that provides the value if no mapping exists.
 The specified <code>parameter</code> will be passed as the argument to the function.</dd>
<dd><code>parameter</code> - the parameter to provide to <code>function</code> if no value
 exists for <code>key</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value associated with the key, if one exists, or the result of
 invoking <code>function</code> with <code>parameter</code> if not</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="updateValue(int,short,org.eclipse.collections.api.block.function.primitive.ShortToShortFunction)">updateValue</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">updateValue</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;initialValueIfAbsent,
<a href="../../block/function/primitive/ShortToShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortToShortFunction</a>&nbsp;function)</span></div>
<div class="block">Updates or sets the value associated with the key by applying the function to the
 existing value, if one exists, or to the specified initial value if one does not.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>initialValueIfAbsent</code> - the initial value to supply to the function if no
 mapping exists for the key</dd>
<dd><code>function</code> - the function that returns the updated value based on the current
 value or the initial value, if no value exists</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the new value associated with the key, either as a result of applying
 <code>function</code> to the value already associated with the key or as a result of
 applying it to <code>initialValueIfAbsent</code> and associating the result with <code>key</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flipUniqueValues()">flipUniqueValues</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableShortIntMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableShortIntMap</a></span>&nbsp;<span class="memberName">flipUniqueValues</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="IntShortMap.html#flipUniqueValues()">IntShortMap</a></code></span></div>
<div class="block">Return the ShortIntMap that is obtained by flipping the direction of this map and making the associations
 from value to key.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IntShortMap.html#flipUniqueValues()">flipUniqueValues</a></code>&nbsp;in interface&nbsp;<code><a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="select(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">select</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../../block/predicate/primitive/IntShortPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">IntShortPredicate</a>&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="IntShortMap.html#select(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">IntShortMap</a></code></span></div>
<div class="block">Return a copy of this map containing only the key/value pairs that match the predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IntShortMap.html#select(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - the predicate to determine which key/value pairs in this map should be
 included in the returned map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of this map with the matching key/value pairs</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="reject(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">reject</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../../block/predicate/primitive/IntShortPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">IntShortPredicate</a>&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="IntShortMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">IntShortMap</a></code></span></div>
<div class="block">Return a copy of this map containing only the key/value pairs that do not match the
 predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="IntShortMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.IntShortPredicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="IntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">IntShortMap</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - the predicate to determine which key/value pairs in this map should be
 excluded from the returned map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a copy of this map without the matching key/value pairs</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withKeyValue(int,short)">withKeyValue</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">withKeyValue</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;value)</span></div>
<div class="block">Associates a value with the specified key. If a value is already associated
 with the key in this map, it will be replaced with <code>value</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the value to associate with <code>value</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this map</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#put(int,short)"><code>put(int, short)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withoutKey(int)">withoutKey</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">withoutKey</span>&#8203;(<span class="arguments">int&nbsp;key)</span></div>
<div class="block">Removes the mapping associated with the key, if one exists, from this map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key to remove</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this map</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#remove(int)"><code>remove(int)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withoutAllKeys(org.eclipse.collections.api.IntIterable)">withoutAllKeys</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">withoutAllKeys</span>&#8203;(<span class="arguments"><a href="../../IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</a>&nbsp;keys)</span></div>
<div class="block">Removes the mappings associated with all the keys, if they exist, from this map.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - the keys to remove</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this map</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#remove(int)"><code>remove(int)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withAllKeyValues(java.lang.Iterable)">withAllKeyValues</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">withAllKeyValues</span>&#8203;(<span class="arguments"><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="../../tuple/primitive/IntShortPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">IntShortPair</a>&gt;&nbsp;keyValuePairs)</span></div>
<div class="block">Puts all of the key/value mappings from the specified pairs into this map. If this
 map already has a value associated with one of the keys in the pairs, it will be
 replaced with the value in the pair.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>iterable</code> - the pairs to put into this map</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this map</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#putPair(org.eclipse.collections.api.tuple.primitive.IntShortPair)"><code>putPair(IntShortPair)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asUnmodifiable()">asUnmodifiable</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">asUnmodifiable</span>()</div>
<div class="block">Returns an unmodifiable view of this map, delegating all read-only operations to this
 map and throwing an <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>UnsupportedOperationException</code></a> for all mutating operations.
 This avoids the overhead of copying the map when calling <a href="IntShortMap.html#toImmutable()"><code>IntShortMap.toImmutable()</code></a> while
 still providing immutability.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an unmodifiable view of this map</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="MutableIntShortMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableIntShortMap</a></span>&nbsp;<span class="memberName">asSynchronized</span>()</div>
<div class="block">Returns a synchronized view of this map, delegating all operations to this map but
 ensuring only one caller has access to the map at a time.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a synchronized view of this map</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="addToValue(int,short)">addToValue</a></h3>
<div class="memberSignature"><span class="returnType">short</span>&nbsp;<span class="memberName">addToValue</span>&#8203;(<span class="arguments">int&nbsp;key,
short&nbsp;toBeAdded)</span></div>
<div class="block">Increments and updates the value associated with the key, if a value exists, or
 sets the value to be the specified value if one does not.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>toBeAdded</code> - the amount to increment the existing value, if one exists, or
 to use as the initial value if one does not</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value after incrementing <code>toBeAdded</code> to the existing value
 associated with <code>key</code> or <code>toBeAdded</code> if one does not</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/MutableIntShortMap.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>
