<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Sat Aug 08 22:45:01 CDT 2020 -->
<title>MutableCharLongMap (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.map.primitive, interface: MutableCharLongMap">
<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/MutableCharLongMap.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 MutableCharLongMap" class="title">Interface MutableCharLongMap</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</a></code>, <code><a href="../../LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</a></code>, <code><a href="LongValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">LongValuesMap</a></code>, <code><a href="MutableLongValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableLongValuesMap</a></code>, <code><a href="../../PrimitiveIterable.html" title="interface in org.eclipse.collections.api">PrimitiveIterable</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../../impl/map/mutable/primitive/CharLongHashMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">CharLongHashMap</a></code>, <code><a href="../../../impl/map/mutable/primitive/SynchronizedCharLongMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">SynchronizedCharLongMap</a></code>, <code><a href="../../../impl/map/mutable/primitive/UnmodifiableCharLongMap.html" title="class in org.eclipse.collections.impl.map.mutable.primitive">UnmodifiableCharLongMap</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">MutableCharLongMap</span>
extends <a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</a>, <a href="MutableLongValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableLongValuesMap</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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#addToValue(char,long)">addToValue</a></span>&#8203;(char&nbsp;key,
long&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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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="MutableLongCharMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableLongCharMap</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 LongCharMap 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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPut(char,long)">getIfAbsentPut</a></span>&#8203;(char&nbsp;key,
long&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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPut(char,org.eclipse.collections.api.block.function.primitive.LongFunction0)">getIfAbsentPut</a></span>&#8203;(char&nbsp;key,
<a href="../../block/function/primitive/LongFunction0.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction0</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;long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPutWith(char,org.eclipse.collections.api.block.function.primitive.LongFunction,P)">getIfAbsentPutWith</a></span>&#8203;(char&nbsp;key,
<a href="../../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getIfAbsentPutWithKey(char,org.eclipse.collections.api.block.function.primitive.CharToLongFunction)">getIfAbsentPutWithKey</a></span>&#8203;(char&nbsp;key,
<a href="../../block/function/primitive/CharToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharToLongFunction</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(char,long)">put</a></span>&#8203;(char&nbsp;key,
long&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.CharLongMap)">putAll</a></span>&#8203;(<a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</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.CharLongPair)">putPair</a></span>&#8203;(<a href="../../tuple/primitive/CharLongPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">CharLongPair</a>&nbsp;keyValuePair)</code></th>
<td class="colLast">
<div class="block">This method allows MutableCharLongMap the ability to add an element in the form of CharLongPair.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reject(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">reject</a></span>&#8203;(<a href="../../block/predicate/primitive/CharLongPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">CharLongPredicate</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(char)">remove</a></span>&#8203;(char&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(char)">removeKey</a></span>&#8203;(char&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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#removeKeyIfAbsent(char,long)">removeKeyIfAbsent</a></span>&#8203;(char&nbsp;key,
long&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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">select</a></span>&#8203;(<a href="../../block/predicate/primitive/CharLongPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">CharLongPredicate</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>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#updateValue(char,long,org.eclipse.collections.api.block.function.primitive.LongToLongFunction)">updateValue</a></span>&#8203;(char&nbsp;key,
long&nbsp;initialValueIfAbsent,
<a href="../../block/function/primitive/LongToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongToLongFunction</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.CharLongToLongFunction)">updateValues</a></span>&#8203;(<a href="../../block/function/primitive/CharLongToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharLongToLongFunction</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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/CharLongPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">CharLongPair</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withKeyValue(char,long)">withKeyValue</a></span>&#8203;(char&nbsp;key,
long&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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withoutAllKeys(org.eclipse.collections.api.CharIterable)">withoutAllKeys</a></span>&#8203;(<a href="../../CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#withoutKey(char)">withoutKey</a></span>&#8203;(char&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="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.CharLongMap">
<!--   -->
</a><code><a href="CharLongMap.html#containsKey(char)">containsKey</a>, <a href="CharLongMap.html#equals(java.lang.Object)">equals</a>, <a href="CharLongMap.html#forEachKey(org.eclipse.collections.api.block.procedure.primitive.CharProcedure)">forEachKey</a>, <a href="CharLongMap.html#forEachKeyValue(org.eclipse.collections.api.block.procedure.primitive.CharLongProcedure)">forEachKeyValue</a>, <a href="CharLongMap.html#get(char)">get</a>, <a href="CharLongMap.html#getIfAbsent(char,long)">getIfAbsent</a>, <a href="CharLongMap.html#getOrThrow(char)">getOrThrow</a>, <a href="CharLongMap.html#hashCode()">hashCode</a>, <a href="CharLongMap.html#keySet()">keySet</a>, <a href="CharLongMap.html#keysView()">keysView</a>, <a href="CharLongMap.html#keyValuesView()">keyValuesView</a>, <a href="CharLongMap.html#toImmutable()">toImmutable</a>, <a href="CharLongMap.html#toString()">toString</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../../LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.LongIterable">
<!--   -->
</a><code><a href="../../LongIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">allSatisfy</a>, <a href="../../LongIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">anySatisfy</a>, <a href="../../LongIterable.html#asLazy()">asLazy</a>, <a href="../../LongIterable.html#average()">average</a>, <a href="../../LongIterable.html#averageIfEmpty(double)">averageIfEmpty</a>, <a href="../../LongIterable.html#chunk(int)">chunk</a>, <a href="../../LongIterable.html#collect(org.eclipse.collections.api.block.function.primitive.LongToObjectFunction,R)">collect</a>, <a href="../../LongIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.LongToBooleanFunction,R)">collectBoolean</a>, <a href="../../LongIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.LongToByteFunction,R)">collectByte</a>, <a href="../../LongIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.LongToCharFunction,R)">collectChar</a>, <a href="../../LongIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.LongToDoubleFunction,R)">collectDouble</a>, <a href="../../LongIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.LongToFloatFunction,R)">collectFloat</a>, <a href="../../LongIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.LongToIntFunction,R)">collectInt</a>, <a href="../../LongIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongToLongFunction,R)">collectLong</a>, <a href="../../LongIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.LongToShortFunction,R)">collectShort</a>, <a href="../../LongIterable.html#contains(long)">contains</a>, <a href="../../LongIterable.html#containsAll(long...)">containsAll</a>, <a href="../../LongIterable.html#containsAll(org.eclipse.collections.api.LongIterable)">containsAll</a>, <a href="../../LongIterable.html#count(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">count</a>, <a href="../../LongIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.primitive.LongPredicate,long)">detectIfNone</a>, <a href="../../LongIterable.html#each(org.eclipse.collections.api.block.procedure.primitive.LongProcedure)">each</a>, <a href="../../LongIterable.html#flatCollect(org.eclipse.collections.api.block.function.primitive.LongToObjectFunction,R)">flatCollect</a>, <a href="../../LongIterable.html#forEach(org.eclipse.collections.api.block.procedure.primitive.LongProcedure)">forEach</a>, <a href="../../LongIterable.html#injectInto(T,org.eclipse.collections.api.block.function.primitive.ObjectLongToObjectFunction)">injectInto</a>, <a href="../../LongIterable.html#max()">max</a>, <a href="../../LongIterable.html#maxIfEmpty(long)">maxIfEmpty</a>, <a href="../../LongIterable.html#median()">median</a>, <a href="../../LongIterable.html#medianIfEmpty(double)">medianIfEmpty</a>, <a href="../../LongIterable.html#min()">min</a>, <a href="../../LongIterable.html#minIfEmpty(long)">minIfEmpty</a>, <a href="../../LongIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">noneSatisfy</a>, <a href="../../LongIterable.html#reduce(org.eclipse.collections.api.block.function.primitive.LongLongToLongFunction)">reduce</a>, <a href="../../LongIterable.html#reduceIfEmpty(org.eclipse.collections.api.block.function.primitive.LongLongToLongFunction,long)">reduceIfEmpty</a>, <a href="../../LongIterable.html#reject(org.eclipse.collections.api.block.predicate.primitive.LongPredicate,R)">reject</a>, <a href="../../LongIterable.html#select(org.eclipse.collections.api.block.predicate.primitive.LongPredicate,R)">select</a>, <a href="../../LongIterable.html#sum()">sum</a>, <a href="../../LongIterable.html#summaryStatistics()">summaryStatistics</a>, <a href="../../LongIterable.html#toArray()">toArray</a>, <a href="../../LongIterable.html#toArray(long%5B%5D)">toArray</a>, <a href="../../LongIterable.html#toBag()">toBag</a>, <a href="../../LongIterable.html#toList()">toList</a>, <a href="../../LongIterable.html#toSet()">toSet</a>, <a href="../../LongIterable.html#toSortedArray()">toSortedArray</a>, <a href="../../LongIterable.html#toSortedList()">toSortedList</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.map.primitive.<a href="LongValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">LongValuesMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.LongValuesMap">
<!--   -->
</a><code><a href="LongValuesMap.html#containsValue(long)">containsValue</a>, <a href="LongValuesMap.html#forEachValue(org.eclipse.collections.api.block.procedure.primitive.LongProcedure)">forEachValue</a>, <a href="LongValuesMap.html#tap(org.eclipse.collections.api.block.procedure.primitive.LongProcedure)">tap</a>, <a href="LongValuesMap.html#values()">values</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.map.primitive.<a href="MutableLongValuesMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableLongValuesMap</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.map.primitive.MutableLongValuesMap">
<!--   -->
</a><code><a href="MutableLongValuesMap.html#clear()">clear</a>, <a href="MutableLongValuesMap.html#collect(org.eclipse.collections.api.block.function.primitive.LongToObjectFunction)">collect</a>, <a href="MutableLongValuesMap.html#longIterator()">longIterator</a>, <a href="MutableLongValuesMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">reject</a>, <a href="MutableLongValuesMap.html#select(org.eclipse.collections.api.block.predicate.primitive.LongPredicate)">select</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>
</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(char,long)">put</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">put</span>&#8203;(<span class="arguments">char&nbsp;key,
long&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.CharLongPair)">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/CharLongPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">CharLongPair</a>&nbsp;keyValuePair)</span></div>
<div class="block">This method allows MutableCharLongMap the ability to add an element in the form of CharLongPair.</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(char,long)"><code>put(char, long)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="putAll(org.eclipse.collections.api.map.primitive.CharLongMap)">putAll</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">putAll</span>&#8203;(<span class="arguments"><a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</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.CharLongToLongFunction)">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/CharLongToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharLongToLongFunction</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(char)">removeKey</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">removeKey</span>&#8203;(<span class="arguments">char&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(char)"><code>remove(char)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="remove(char)">remove</a></h3>
<div class="memberSignature"><span class="returnType">void</span>&nbsp;<span class="memberName">remove</span>&#8203;(<span class="arguments">char&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(char)"><code>removeKey(char)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="removeKeyIfAbsent(char,long)">removeKeyIfAbsent</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">removeKeyIfAbsent</span>&#8203;(<span class="arguments">char&nbsp;key,
long&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(char,long)">getIfAbsentPut</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">getIfAbsentPut</span>&#8203;(<span class="arguments">char&nbsp;key,
long&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(char,org.eclipse.collections.api.block.function.primitive.LongFunction0)">getIfAbsentPut</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">getIfAbsentPut</span>&#8203;(<span class="arguments">char&nbsp;key,
<a href="../../block/function/primitive/LongFunction0.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction0</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(char,org.eclipse.collections.api.block.function.primitive.CharToLongFunction)">getIfAbsentPutWithKey</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">getIfAbsentPutWithKey</span>&#8203;(<span class="arguments">char&nbsp;key,
<a href="../../block/function/primitive/CharToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharToLongFunction</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(char,org.eclipse.collections.api.block.function.primitive.LongFunction,java.lang.Object)">
<!--   -->
</a><a id="getIfAbsentPutWith(char,org.eclipse.collections.api.block.function.primitive.LongFunction,P)">getIfAbsentPutWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">long</span>&nbsp;<span class="memberName">getIfAbsentPutWith</span>&#8203;(<span class="arguments">char&nbsp;key,
<a href="../../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</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(char,long,org.eclipse.collections.api.block.function.primitive.LongToLongFunction)">updateValue</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">updateValue</span>&#8203;(<span class="arguments">char&nbsp;key,
long&nbsp;initialValueIfAbsent,
<a href="../../block/function/primitive/LongToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongToLongFunction</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="MutableLongCharMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableLongCharMap</a></span>&nbsp;<span class="memberName">flipUniqueValues</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="CharLongMap.html#flipUniqueValues()">CharLongMap</a></code></span></div>
<div class="block">Return the LongCharMap 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="CharLongMap.html#flipUniqueValues()">flipUniqueValues</a></code>&nbsp;in interface&nbsp;<code><a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</a></code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="select(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">select</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../../block/predicate/primitive/CharLongPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">CharLongPredicate</a>&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="CharLongMap.html#select(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">CharLongMap</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="CharLongMap.html#select(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</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.CharLongPredicate)">reject</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../../block/predicate/primitive/CharLongPredicate.html" title="interface in org.eclipse.collections.api.block.predicate.primitive">CharLongPredicate</a>&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="CharLongMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">CharLongMap</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="CharLongMap.html#reject(org.eclipse.collections.api.block.predicate.primitive.CharLongPredicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="CharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">CharLongMap</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(char,long)">withKeyValue</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></span>&nbsp;<span class="memberName">withKeyValue</span>&#8203;(<span class="arguments">char&nbsp;key,
long&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(char,long)"><code>put(char, long)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withoutKey(char)">withoutKey</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></span>&nbsp;<span class="memberName">withoutKey</span>&#8203;(<span class="arguments">char&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(char)"><code>remove(char)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="withoutAllKeys(org.eclipse.collections.api.CharIterable)">withoutAllKeys</a></h3>
<div class="memberSignature"><span class="returnType"><a href="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</a></span>&nbsp;<span class="memberName">withoutAllKeys</span>&#8203;(<span class="arguments"><a href="../../CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</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(char)"><code>remove(char)</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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/CharLongPair.html" title="interface in org.eclipse.collections.api.tuple.primitive">CharLongPair</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.CharLongPair)"><code>putPair(CharLongPair)</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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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="CharLongMap.html#toImmutable()"><code>CharLongMap.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="MutableCharLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">MutableCharLongMap</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(char,long)">addToValue</a></h3>
<div class="memberSignature"><span class="returnType">long</span>&nbsp;<span class="memberName">addToValue</span>&#8203;(<span class="arguments">char&nbsp;key,
long&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/MutableCharLongMap.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>
