<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>MultivaluedMap</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="MultivaluedMap";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">
<ul class="navList">
<li><a href="../../../../javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/ws/rs/core/MultivaluedMap.html" target="_top">Frames</a></li>
<li><a href="MultivaluedMap.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<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>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">javax.ws.rs.core</div>
<h2 title="Interface MultivaluedMap" class="title">Interface MultivaluedMap&lt;K,V&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>K</code> - the type of keys maintained by this map</dd>
<dd><code>V</code> - the type of mapped values</dd>
</dl>
<dl>
<dt>All Superinterfaces:</dt>
<dd>java.util.Map&lt;K,java.util.List&lt;V&gt;&gt;</dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../javax/ws/rs/core/AbstractMultivaluedMap.html" title="class in javax.ws.rs.core">AbstractMultivaluedMap</a>, <a href="../../../../javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core">MultivaluedHashMap</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">MultivaluedMap&lt;K,V&gt;</span>
extends java.util.Map&lt;K,java.util.List&lt;V&gt;&gt;</pre>
<div class="block">A map of key-values pairs. Each key can have zero or more values.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>1.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.java.util.Map">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
<code>java.util.Map.Entry&lt;K,V&gt;</code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#add-K-V-">add</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
   <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code>
<div class="block">Add a value to the current list of values for the supplied key.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#addAll-K-java.util.List-">addAll</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
      java.util.List&lt;<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</code>
<div class="block">Add all the values from the supplied value list to the current list of
 values for the supplied key.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#addAll-K-V...-">addAll</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
      <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</code>
<div class="block">Add multiple values to the current list of values for the supplied key.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#addFirst-K-V-">addFirst</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
        <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code>
<div class="block">Add a value to the first position in the current list of values for the
 supplied key.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#equalsIgnoreValueOrder-javax.ws.rs.core.MultivaluedMap-">equalsIgnoreValueOrder</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</code>
<div class="block">Compare the specified map with this map for equality modulo the order
 of values for each key.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#getFirst-K-">getFirst</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</code>
<div class="block">A shortcut to get the first value of the supplied key.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../javax/ws/rs/core/MultivaluedMap.html#putSingle-K-V-">putSingle</a></span>(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
         <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</code>
<div class="block">Set the key's value to be a one item list consisting of the supplied value.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.Map">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
<code>clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="putSingle-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="putSingle-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>putSingle</h4>
<pre>void&nbsp;putSingle(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
               <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
<div class="block">Set the key's value to be a one item list consisting of the supplied value.
 Any existing values will be replaced.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the single value of the key</dd>
</dl>
</li>
</ul>
<a name="add-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="add-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre>void&nbsp;add(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
         <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
<div class="block">Add a value to the current list of values for the supplied key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the value to be added.</dd>
</dl>
</li>
</ul>
<a name="getFirst-java.lang.Object-">
<!--   -->
</a><a name="getFirst-K-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFirst</h4>
<pre><a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;getFirst(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key)</pre>
<div class="block">A shortcut to get the first value of the supplied key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the first value for the specified key or null if the key is
         not in the map.</dd>
</dl>
</li>
</ul>
<a name="addAll-java.lang.Object-java.lang.Object:A-">
<!--   -->
</a><a name="addAll-K-V...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAll</h4>
<pre>void&nbsp;addAll(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
            <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>...&nbsp;newValues)</pre>
<div class="block">Add multiple values to the current list of values for the supplied key. If
 the supplied array of new values is empty, method returns immediately.
 Method throws a <code>NullPointerException</code> if the supplied array of values
 is <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key.</dd>
<dd><code>newValues</code> - the values to be added.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if the supplied array of new values is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="addAll-java.lang.Object-java.util.List-">
<!--   -->
</a><a name="addAll-K-java.util.List-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addAll</h4>
<pre>void&nbsp;addAll(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
            java.util.List&lt;<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;valueList)</pre>
<div class="block">Add all the values from the supplied value list to the current list of
 values for the supplied key. If the supplied value list is empty, method
 returns immediately. Method throws a <code>NullPointerException</code> if the
 supplied array of values is <code>null</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key.</dd>
<dd><code>valueList</code> - the list of values to be added.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.NullPointerException</code> - if the supplied value list is <code>null</code>.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="addFirst-java.lang.Object-java.lang.Object-">
<!--   -->
</a><a name="addFirst-K-V-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addFirst</h4>
<pre>void&nbsp;addFirst(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>&nbsp;key,
              <a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&nbsp;value)</pre>
<div class="block">Add a value to the first position in the current list of values for the
 supplied key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key</dd>
<dd><code>value</code> - the value to be added.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
<a name="equalsIgnoreValueOrder-javax.ws.rs.core.MultivaluedMap-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>equalsIgnoreValueOrder</h4>
<pre>boolean&nbsp;equalsIgnoreValueOrder(<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="interface in javax.ws.rs.core">MultivaluedMap</a>&lt;<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">K</a>,<a href="../../../../javax/ws/rs/core/MultivaluedMap.html" title="type parameter in MultivaluedMap">V</a>&gt;&nbsp;otherMap)</pre>
<div class="block">Compare the specified map with this map for equality modulo the order
 of values for each key. Specifically, the values associated with
 each key are compared as if they were ordered lists.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>otherMap</code> - map to be compared to this one.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the maps are equal modulo value ordering.</dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</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">
<ul class="navList">
<li><a href="../../../../javax/ws/rs/core/MultivaluedHashMap.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../javax/ws/rs/core/NewCookie.html" title="class in javax.ws.rs.core"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?javax/ws/rs/core/MultivaluedMap.html" target="_top">Frames</a></li>
<li><a href="MultivaluedMap.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<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>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
