<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Sat Aug 08 22:45:01 CDT 2020 -->
<title>ImmutableSet (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.set, interface: ImmutableSet">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":18,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":38,"i34":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated 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/ImmutableSet.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.set</a></div>
<h1 title="Interface ImmutableSet" class="title">Interface ImmutableSet&lt;T&gt;</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;T&gt;</code>, <code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;T&gt;</code>, <code><a href="../InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a>&lt;T&gt;</code>, <code><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;T&gt;</code>, <code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;T&gt;</code>, <code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;T&gt;</code>, <code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;T&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../impl/set/immutable/AbstractImmutableSet.html" title="class in org.eclipse.collections.impl.set.immutable">AbstractImmutableSet</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">ImmutableSet&lt;T&gt;</span>
extends <a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;T&gt;, <a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;T&gt;</pre>
<div class="block">ImmutableSet is the non-modifiable equivalent interface to <a href="MutableSet.html" title="interface in org.eclipse.collections.api.set"><code>MutableSet</code></a>. <a href="MutableSet.html#toImmutable()"><code>MutableSet.toImmutable()</code></a> will
 give you an appropriately trimmed implementation of ImmutableSet. All ImmutableSet implementations must implement
 the java.util.Set interface so they can satisfy the equals() contract and be compared against other set structures
 like UnifiedSet or HashSet.</div>
</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><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t6" class="tableTab" onclick="show(32);">Deprecated Methods</button></div>
<div id="memberSummary_tabpanel" role="tabpanel">
<table aria-labelledby="t0">
<thead>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
</thead>
<tbody>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#castToSet()">castToSet</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collect(org.eclipse.collections.api.block.function.Function)">collect</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="primitive/ImmutableBooleanSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableBooleanSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></span>&#8203;(<a href="../block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;booleanFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>boolean</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="primitive/ImmutableByteSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableByteSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></span>&#8203;(<a href="../block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;byteFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>byte</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="primitive/ImmutableCharSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableCharSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></span>&#8203;(<a href="../block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;charFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>char</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="primitive/ImmutableDoubleSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableDoubleSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></span>&#8203;(<a href="../block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;doubleFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>double</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="primitive/ImmutableFloatSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableFloatSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></span>&#8203;(<a href="../block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;floatFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>float</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate,
<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection, but only for those elements which return true upon evaluation of the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code><a href="primitive/ImmutableIntSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableIntSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></span>&#8203;(<a href="../block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;intFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>int</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="primitive/ImmutableLongSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableLongSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></span>&#8203;(<a href="../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;longFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>long</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="primitive/ImmutableShortSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableShortSet</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></span>&#8203;(<a href="../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;shortFunction)</code></th>
<td class="colLast">
<div class="block">Returns a new primitive <code>short</code> iterable with the results of applying the specified function on each element
 of the source collection.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>&lt;P,&#8203;
V&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></span>&#8203;(<a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a> with a <code>Function2</code> and specified parameter which is passed to the block.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#difference(org.eclipse.collections.api.set.SetIterable)">difference</a></span>&#8203;(<a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;subtrahendSet)</code></th>
<td class="colLast">
<div class="block">Returns the set of all members of <code>this</code> that are not members of <code>subtrahendSet</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends <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;V&gt;&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block"><code>flatCollect</code> is a special case of <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>default &lt;P,&#8203;
V&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></span>&#8203;(<a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P,&#8203;? extends <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;V&gt;&gt;&nbsp;function,
P&nbsp;parameter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../multimap/set/ImmutableSetMultimap.html" title="interface in org.eclipse.collections.api.multimap.set">ImmutableSetMultimap</a>&lt;V,&#8203;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">For each element of the iterable, the function is evaluated and the results of these evaluations are collected
 into a new multimap, where the transformed value is the key and the original values are added to the same (or similar)
 species of collection as the source iterable.</div>
</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../multimap/set/ImmutableSetMultimap.html" title="interface in org.eclipse.collections.api.multimap.set">ImmutableSetMultimap</a>&lt;V,&#8203;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends <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;V&gt;&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except the result of evaluating function will return a collection of keys
 for each value.</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#intersect(org.eclipse.collections.api.set.SetIterable)">intersect</a></span>&#8203;(<a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;set)</code></th>
<td class="colLast">
<div class="block">Returns the set of all objects that are members of both <code>this</code> and <code>set</code>.</div>
</td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newWith(T)">newWith</a></span>&#8203;(<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&nbsp;element)</code></th>
<td class="colLast">
<div class="block">This method is similar to the <code>with</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the element appended will be returned.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newWithAll(java.lang.Iterable)">newWithAll</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;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;elements)</code></th>
<td class="colLast">
<div class="block">This method is similar to the <code>withAll</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the elements appended will be returned.</div>
</td>
</tr>
<tr class="altColor" id="i20">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newWithout(T)">newWithout</a></span>&#8203;(<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&nbsp;element)</code></th>
<td class="colLast">
<div class="block">This method is similar to the <code>without</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the element removed will be returned.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newWithoutAll(java.lang.Iterable)">newWithoutAll</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;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;elements)</code></th>
<td class="colLast">
<div class="block">This method is similar to the <code>withoutAll</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the elements removed will be returned.</div>
</td>
</tr>
<tr class="altColor" id="i22">
<td class="colFirst"><code><a href="../partition/set/PartitionImmutableSet.html" title="interface in org.eclipse.collections.api.partition.set">PartitionImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Filters a collection into a PartitionedIterable based on the evaluation of the predicate.</div>
</td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="../partition/set/PartitionImmutableSet.html" title="interface in org.eclipse.collections.api.partition.set">PartitionImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Filters a collection into a PartitionIterable based on the evaluation of the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i24">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#powerSet()">powerSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the set whose members are all possible subsets of <code>this</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i25">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source collection that return false when evaluating of the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i26">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.reject(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i27">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source collection that return true when evaluating the predicate.</div>
</td>
</tr>
<tr class="altColor" id="i28">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;S&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;S&gt;&nbsp;clazz)</code></th>
<td class="colLast">
<div class="block">Returns all elements of the source collection that are instances of the Class <code>clazz</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i29">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i30">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#symmetricDifference(org.eclipse.collections.api.set.SetIterable)">symmetricDifference</a></span>&#8203;(<a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;setB)</code></th>
<td class="colLast">
<div class="block">Returns the set of all objects that are a member of exactly one of <code>this</code> and <code>setB</code> (elements which
 are in one of the sets, but not in both).</div>
</td>
</tr>
<tr class="rowColor" id="i31">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></span>&#8203;(<a href="../block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;procedure)</code></th>
<td class="colLast">
<div class="block">Executes the Procedure for each element in the iterable and returns <code>this</code>.</div>
</td>
</tr>
<tr class="altColor" id="i32">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#union(org.eclipse.collections.api.set.SetIterable)">union</a></span>&#8203;(<a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;set)</code></th>
<td class="colLast">
<div class="block">Returns the set of all objects that are a member of <code>this</code> or <code>set</code> or both.</div>
</td>
</tr>
<tr class="rowColor" id="i33">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;S&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#zip(java.lang.Iterable)">zip</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;S&gt;&nbsp;that)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">in 6.0.</div>
</div>
</td>
</tr>
<tr class="altColor" id="i34">
<td class="colFirst"><code><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#zipWithIndex()">zipWithIndex</a></span>()</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">in 6.0.</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.collection.<a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.collection.ImmutableCollection">
<!--   -->
</a><code><a href="../collection/ImmutableCollection.html#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2)">aggregateBy</a>, <a href="../collection/ImmutableCollection.html#aggregateInPlaceBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.procedure.Procedure2)">aggregateInPlaceBy</a>, <a href="../collection/ImmutableCollection.html#castToCollection()">castToCollection</a>, <a href="../collection/ImmutableCollection.html#countBy(org.eclipse.collections.api.block.function.Function)">countBy</a>, <a href="../collection/ImmutableCollection.html#countByEach(org.eclipse.collections.api.block.function.Function)">countByEach</a>, <a href="../collection/ImmutableCollection.html#countByWith(org.eclipse.collections.api.block.function.Function2,P)">countByWith</a>, <a href="../collection/ImmutableCollection.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)">groupByUniqueKey</a>, <a href="../collection/ImmutableCollection.html#parallelStream()">parallelStream</a>, <a href="../collection/ImmutableCollection.html#spliterator()">spliterator</a>, <a href="../collection/ImmutableCollection.html#stream()">stream</a>, <a href="../collection/ImmutableCollection.html#sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumByDouble</a>, <a href="../collection/ImmutableCollection.html#sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumByFloat</a>, <a href="../collection/ImmutableCollection.html#sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">sumByInt</a>, <a href="../collection/ImmutableCollection.html#sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">sumByLong</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.InternalIterable">
<!--   -->
</a><code><a href="../InternalIterable.html#forEach(java.util.function.Consumer)">forEach</a>, <a href="../InternalIterable.html#forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">forEachWith</a>, <a href="../InternalIterable.html#forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;java.lang.<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></h3>
<a id="methods.inherited.from.class.java.lang.Iterable">
<!--   -->
</a><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.RichIterable">
<!--   -->
</a><code><a href="../RichIterable.html#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2,R)">aggregateBy</a>, <a href="../RichIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">allSatisfy</a>, <a href="../RichIterable.html#allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">allSatisfyWith</a>, <a href="../RichIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">anySatisfy</a>, <a href="../RichIterable.html#anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">anySatisfyWith</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable)">appendString</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable,java.lang.String)">appendString</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a>, <a href="../RichIterable.html#asLazy()">asLazy</a>, <a href="../RichIterable.html#chunk(int)">chunk</a>, <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function,R)">collect</a>, <a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">collectBoolean</a>, <a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">collectByte</a>, <a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">collectChar</a>, <a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">collectDouble</a>, <a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">collectFloat</a>, <a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function,R)">collectIf</a>, <a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">collectInt</a>, <a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">collectLong</a>, <a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">collectShort</a>, <a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">collectWith</a>, <a href="../RichIterable.html#contains(java.lang.Object)">contains</a>, <a href="../RichIterable.html#containsAll(java.util.Collection)">containsAll</a>, <a href="../RichIterable.html#containsAllArguments(java.lang.Object...)">containsAllArguments</a>, <a href="../RichIterable.html#containsAllIterable(java.lang.Iterable)">containsAllIterable</a>, <a href="../RichIterable.html#containsBy(org.eclipse.collections.api.block.function.Function,V)">containsBy</a>, <a href="../RichIterable.html#count(org.eclipse.collections.api.block.predicate.Predicate)">count</a>, <a href="../RichIterable.html#countBy(org.eclipse.collections.api.block.function.Function,R)">countBy</a>, <a href="../RichIterable.html#countByEach(org.eclipse.collections.api.block.function.Function,R)">countByEach</a>, <a href="../RichIterable.html#countByWith(org.eclipse.collections.api.block.function.Function2,P,R)">countByWith</a>, <a href="../RichIterable.html#countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">countWith</a>, <a href="../RichIterable.html#detect(org.eclipse.collections.api.block.predicate.Predicate)">detect</a>, <a href="../RichIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">detectIfNone</a>, <a href="../RichIterable.html#detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">detectOptional</a>, <a href="../RichIterable.html#detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWith</a>, <a href="../RichIterable.html#detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">detectWithIfNone</a>, <a href="../RichIterable.html#detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWithOptional</a>, <a href="../RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)">each</a>, <a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function,R)">flatCollect</a>, <a href="../RichIterable.html#flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">flatCollectBoolean</a>, <a href="../RichIterable.html#flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">flatCollectByte</a>, <a href="../RichIterable.html#flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">flatCollectChar</a>, <a href="../RichIterable.html#flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">flatCollectDouble</a>, <a href="../RichIterable.html#flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">flatCollectFloat</a>, <a href="../RichIterable.html#flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">flatCollectInt</a>, <a href="../RichIterable.html#flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">flatCollectLong</a>, <a href="../RichIterable.html#flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">flatCollectShort</a>, <a href="../RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P,R)">flatCollectWith</a>, <a href="../RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)">forEach</a>, <a href="../RichIterable.html#getAny()">getAny</a>, <a href="../RichIterable.html#getFirst()">getFirst</a>, <a href="../RichIterable.html#getLast()">getLast</a>, <a href="../RichIterable.html#getOnly()">getOnly</a>, <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function,R)">groupBy</a>, <a href="../RichIterable.html#groupByAndCollect(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">groupByAndCollect</a>, <a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function,R)">groupByEach</a>, <a href="../RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">groupByUniqueKey</a>, <a href="../RichIterable.html#injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(IV,org.eclipse.collections.api.block.function.Function2)">injectInto</a>, <a href="../RichIterable.html#into(R)">into</a>, <a href="../RichIterable.html#isEmpty()">isEmpty</a>, <a href="../RichIterable.html#makeString()">makeString</a>, <a href="../RichIterable.html#makeString(java.lang.String)">makeString</a>, <a href="../RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a>, <a href="../RichIterable.html#max()">max</a>, <a href="../RichIterable.html#max(java.util.Comparator)">max</a>, <a href="../RichIterable.html#maxBy(org.eclipse.collections.api.block.function.Function)">maxBy</a>, <a href="../RichIterable.html#maxByOptional(org.eclipse.collections.api.block.function.Function)">maxByOptional</a>, <a href="../RichIterable.html#maxOptional()">maxOptional</a>, <a href="../RichIterable.html#maxOptional(java.util.Comparator)">maxOptional</a>, <a href="../RichIterable.html#min()">min</a>, <a href="../RichIterable.html#min(java.util.Comparator)">min</a>, <a href="../RichIterable.html#minBy(org.eclipse.collections.api.block.function.Function)">minBy</a>, <a href="../RichIterable.html#minByOptional(org.eclipse.collections.api.block.function.Function)">minByOptional</a>, <a href="../RichIterable.html#minOptional()">minOptional</a>, <a href="../RichIterable.html#minOptional(java.util.Comparator)">minOptional</a>, <a href="../RichIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">noneSatisfy</a>, <a href="../RichIterable.html#noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">noneSatisfyWith</a>, <a href="../RichIterable.html#notEmpty()">notEmpty</a>, <a href="../RichIterable.html#reduce(java.util.function.BinaryOperator)">reduce</a>, <a href="../RichIterable.html#reduceInPlace(java.util.function.Supplier,java.util.function.BiConsumer)">reduceInPlace</a>, <a href="../RichIterable.html#reduceInPlace(java.util.stream.Collector)">reduceInPlace</a>, <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)">reject</a>, <a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">rejectWith</a>, <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)">select</a>, <a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">selectWith</a>, <a href="../RichIterable.html#size()">size</a>, <a href="../RichIterable.html#summarizeDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">summarizeDouble</a>, <a href="../RichIterable.html#summarizeFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">summarizeFloat</a>, <a href="../RichIterable.html#summarizeInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">summarizeInt</a>, <a href="../RichIterable.html#summarizeLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">summarizeLong</a>, <a href="../RichIterable.html#sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumOfDouble</a>, <a href="../RichIterable.html#sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumOfFloat</a>, <a href="../RichIterable.html#sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">sumOfInt</a>, <a href="../RichIterable.html#sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">sumOfLong</a>, <a href="../RichIterable.html#toArray()">toArray</a>, <a href="../RichIterable.html#toArray(E%5B%5D)">toArray</a>, <a href="../RichIterable.html#toBag()">toBag</a>, <a href="../RichIterable.html#toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toBiMap</a>, <a href="../RichIterable.html#toList()">toList</a>, <a href="../RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toMap</a>, <a href="../RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">toMap</a>, <a href="../RichIterable.html#toSet()">toSet</a>, <a href="../RichIterable.html#toSortedBag()">toSortedBag</a>, <a href="../RichIterable.html#toSortedBag(java.util.Comparator)">toSortedBag</a>, <a href="../RichIterable.html#toSortedBagBy(org.eclipse.collections.api.block.function.Function)">toSortedBagBy</a>, <a href="../RichIterable.html#toSortedList()">toSortedList</a>, <a href="../RichIterable.html#toSortedList(java.util.Comparator)">toSortedList</a>, <a href="../RichIterable.html#toSortedListBy(org.eclipse.collections.api.block.function.Function)">toSortedListBy</a>, <a href="../RichIterable.html#toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a>, <a href="../RichIterable.html#toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a>, <a href="../RichIterable.html#toSortedMapBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMapBy</a>, <a href="../RichIterable.html#toSortedSet()">toSortedSet</a>, <a href="../RichIterable.html#toSortedSet(java.util.Comparator)">toSortedSet</a>, <a href="../RichIterable.html#toSortedSetBy(org.eclipse.collections.api.block.function.Function)">toSortedSetBy</a>, <a href="../RichIterable.html#toString()">toString</a>, <a href="../RichIterable.html#zip(java.lang.Iterable,R)">zip</a>, <a href="../RichIterable.html#zipWithIndex(R)">zipWithIndex</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.set.<a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.set.SetIterable">
<!--   -->
</a><code><a href="SetIterable.html#cartesianProduct(org.eclipse.collections.api.set.SetIterable)">cartesianProduct</a>, <a href="SetIterable.html#differenceInto(org.eclipse.collections.api.set.SetIterable,R)">differenceInto</a>, <a href="SetIterable.html#equals(java.lang.Object)">equals</a>, <a href="SetIterable.html#hashCode()">hashCode</a>, <a href="SetIterable.html#intersectInto(org.eclipse.collections.api.set.SetIterable,R)">intersectInto</a>, <a href="SetIterable.html#isProperSubsetOf(org.eclipse.collections.api.set.SetIterable)">isProperSubsetOf</a>, <a href="SetIterable.html#isSubsetOf(org.eclipse.collections.api.set.SetIterable)">isSubsetOf</a>, <a href="SetIterable.html#symmetricDifferenceInto(org.eclipse.collections.api.set.SetIterable,R)">symmetricDifferenceInto</a>, <a href="SetIterable.html#unionInto(org.eclipse.collections.api.set.SetIterable,R)">unionInto</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.set.<a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.set.UnsortedSetIterable">
<!--   -->
</a><code><a href="UnsortedSetIterable.html#asParallel(java.util.concurrent.ExecutorService,int)">asParallel</a>, <a href="UnsortedSetIterable.html#toImmutable()">toImmutable</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="newWith(java.lang.Object)">
<!--   -->
</a><a id="newWith(T)">newWith</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">newWith</span>&#8203;(<span class="arguments"><a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&nbsp;element)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../collection/ImmutableCollection.html#newWith(T)">ImmutableCollection</a></code></span></div>
<div class="block">This method is similar to the <code>with</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the element appended will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#newWith(T)">newWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="newWithout(java.lang.Object)">
<!--   -->
</a><a id="newWithout(T)">newWithout</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">newWithout</span>&#8203;(<span class="arguments"><a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&nbsp;element)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../collection/ImmutableCollection.html#newWithout(T)">ImmutableCollection</a></code></span></div>
<div class="block">This method is similar to the <code>without</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the element removed will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#newWithout(T)">newWithout</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="newWithAll(java.lang.Iterable)">newWithAll</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">newWithAll</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;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;elements)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../collection/ImmutableCollection.html#newWithAll(java.lang.Iterable)">ImmutableCollection</a></code></span></div>
<div class="block">This method is similar to the <code>withAll</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the elements appended will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#newWithAll(java.lang.Iterable)">newWithAll</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="newWithoutAll(java.lang.Iterable)">newWithoutAll</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">newWithoutAll</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;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;elements)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../collection/ImmutableCollection.html#newWithoutAll(java.lang.Iterable)">ImmutableCollection</a></code></span></div>
<div class="block">This method is similar to the <code>withoutAll</code> method in <code>MutableCollection</code>
 with the difference that a new copy of this collection with the elements removed will be returned.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#newWithoutAll(java.lang.Iterable)">newWithoutAll</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">tap</span>&#8203;(<span class="arguments"><a href="../block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;procedure)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">RichIterable</a></code></span></div>
<div class="block">Executes the Procedure for each element in the iterable and returns <code>this</code>.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; tapped =
     people.<b>tap</b>(person -&gt; LOGGER.info(person.getName()));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; tapped =
     people.<b>tap</b>(new Procedure&lt;Person&gt;()
     {
         public void value(Person person)
         {
             LOGGER.info(person.getName());
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.each(Procedure)</code></a>, 
<a href="../RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.forEach(Procedure)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that return true when evaluating the predicate. This method is also
 commonly called filter.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.<b>select</b>(person -&gt; person.getAddress().getCity().equals("London"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.<b>select</b>(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.getAddress().getCity().equals("London");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">selectWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.
 <p>
 E.g. return a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Collection</code></a> of Person elements where the person has an age <b>greater than or equal to</b> 18 years
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.selectWith((Person person, Integer age) -&gt; person.getAge()&gt;= age, Integer.valueOf(18));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.selectWith(new Predicate2&lt;Person, Integer&gt;()
     {
         public boolean accept(Person person, Integer age)
         {
             return person.getAge()&gt;= age;
         }
     }, Integer.valueOf(18));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dd><code>parameter</code> - a parameter to pass in for evaluation of the second argument <code>P</code> in <code>predicate</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that return false when evaluating of the predicate. This method is also
 sometimes called filterNot and is the equivalent of calling iterable.select(Predicates.not(predicate)).
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.reject(person -&gt; person.person.getLastName().equals("Smith"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.reject(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.person.getLastName().equals("Smith");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate</code></a> to use as the reject criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a RichIterable that contains elements that cause <a href="../block/predicate/Predicate.html#accept(T)"><code>Predicate.accept(Object)</code></a> method to evaluate to false</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">rejectWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.reject(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.
 <p>
 E.g. return a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Collection</code></a> of Person elements where the person has an age <b>greater than or equal to</b> 18 years
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.rejectWith((Person person, Integer age) -&gt; person.getAge() &lt; age, Integer.valueOf(18));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&lt;Person&gt; rejected =
     people.rejectWith(new Predicate2&lt;Person, Integer&gt;()
     {
         public boolean accept(Person person, Integer age)
         {
             return person.getAge() &lt; age;
         }
     }, Integer.valueOf(18));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dd><code>parameter</code> - a parameter to pass in for evaluation of the second argument <code>P</code> in <code>predicate</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../partition/set/PartitionImmutableSet.html" title="interface in org.eclipse.collections.api.partition.set">PartitionImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">partition</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Filters a collection into a PartitionedIterable based on the evaluation of the predicate.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partition</b>(person -&gt; person.getAddress().getState().getName().equals("New York"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partition</b>(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.getAddress().getState().getName().equals("New York");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="../partition/set/PartitionImmutableSet.html" title="interface in org.eclipse.collections.api.partition.set">PartitionImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">partitionWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Filters a collection into a PartitionIterable based on the evaluation of the predicate.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partitionWith</b>((Person person, String state) -&gt; person.getAddress().getState().getName().equals(state), "New York");
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partitionWith</b>(new Predicate2&lt;Person, String&gt;()
     {
         public boolean accept(Person person, String state)
         {
             return person.getAddress().getState().getName().equals(state);
         }
     }, "New York");
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectInstancesOf(java.lang.Class)">selectInstancesOf</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;S&gt;</span>&nbsp;<span class="memberName">selectInstancesOf</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;S&gt;&nbsp;clazz)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#selectInstancesOf(java.lang.Class)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that are instances of the Class <code>clazz</code>.

 <pre>
 RichIterable&lt;Integer&gt; integers =
     List.mutable.with(new Integer(0), new Long(0L), new Double(0.0)).selectInstancesOf(Integer.class);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collect(org.eclipse.collections.api.block.function.Function)">collect</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collect</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;String&gt; names =
     people.collect(person -&gt; person.getFirstName() + " " + person.getLastName());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;String&gt; names =
     people.collect(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getFirstName() + " " + person.getLastName();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableBooleanSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableBooleanSet</a></span>&nbsp;<span class="memberName">collectBoolean</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;booleanFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>boolean</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 BooleanIterable licenses =
     people.collectBoolean(person -&gt; person.hasDrivingLicense());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 BooleanIterable licenses =
     people.collectBoolean(new BooleanFunction&lt;Person&gt;()
     {
         public boolean booleanValueOf(Person person)
         {
             return person.hasDrivingLicense();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableByteSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableByteSet</a></span>&nbsp;<span class="memberName">collectByte</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;byteFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>byte</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ByteIterable bytes =
     people.collectByte(person -&gt; person.getCode());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ByteIterable bytes =
     people.collectByte(new ByteFunction&lt;Person&gt;()
     {
         public byte byteValueOf(Person person)
         {
             return person.getCode();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableCharSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableCharSet</a></span>&nbsp;<span class="memberName">collectChar</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;charFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>char</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 CharIterable chars =
     people.collectChar(person -&gt; person.getMiddleInitial());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 CharIterable chars =
     people.collectChar(new CharFunction&lt;Person&gt;()
     {
         public char charValueOf(Person person)
         {
             return person.getMiddleInitial();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableDoubleSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableDoubleSet</a></span>&nbsp;<span class="memberName">collectDouble</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;doubleFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>double</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 DoubleIterable doubles =
     people.collectDouble(person -&gt; person.getMilesFromNorthPole());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 DoubleIterable doubles =
     people.collectDouble(new DoubleFunction&lt;Person&gt;()
     {
         public double doubleValueOf(Person person)
         {
             return person.getMilesFromNorthPole();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableFloatSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableFloatSet</a></span>&nbsp;<span class="memberName">collectFloat</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;floatFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>float</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 FloatIterable floats =
     people.collectFloat(person -&gt; person.getHeightInInches());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 FloatIterable floats =
     people.collectFloat(new FloatFunction&lt;Person&gt;()
     {
         public float floatValueOf(Person person)
         {
             return person.getHeightInInches();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableIntSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableIntSet</a></span>&nbsp;<span class="memberName">collectInt</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;intFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>int</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 IntIterable ints =
     people.collectInt(person -&gt; person.getAge());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 IntIterable ints =
     people.collectInt(new IntFunction&lt;Person&gt;()
     {
         public int intValueOf(Person person)
         {
             return person.getAge();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableLongSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableLongSet</a></span>&nbsp;<span class="memberName">collectLong</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;longFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>long</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 LongIterable longs =
     people.collectLong(person -&gt; person.getGuid());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 LongIterable longs =
     people.collectLong(new LongFunction&lt;Person&gt;()
     {
         public long longValueOf(Person person)
         {
             return person.getGuid();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ImmutableShortSet.html" title="interface in org.eclipse.collections.api.set.primitive">ImmutableShortSet</a></span>&nbsp;<span class="memberName">collectShort</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;shortFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>short</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ShortIterable shorts =
     people.collectShort(person -&gt; person.getNumberOfJunkMailItemsReceivedPerMonth());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ShortIterable shorts =
     people.collectShort(new ShortFunction&lt;Person&gt;()
     {
         public short shortValueOf(Person person)
         {
             return person.getNumberOfJunkMailItemsReceivedPerMonth();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectWith(org.eclipse.collections.api.block.function.Function2,java.lang.Object)">
<!--   -->
</a><a id="collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectWith</span>&#8203;(<span class="arguments"><a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a> with a <code>Function2</code> and specified parameter which is passed to the block.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith((each, parameter) -&gt; each + parameter, Integer.valueOf(1));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Function2&lt;Integer, Integer, Integer&gt; addParameterFunction =
     new Function2&lt;Integer, Integer, Integer&gt;()
     {
         public Integer value(Integer each, Integer parameter)
         {
             return each + parameter;
         }
     };
 RichIterable&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith(addParameterFunction, Integer.valueOf(1));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - A <a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function"><code>Function2</code></a> to use as the collect transformation function</dd>
<dd><code>parameter</code> - A parameter to pass in for evaluation of the second argument <code>P</code> in <code>function</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>RichIterable</code> that contains the transformed elements returned by <a href="../block/function/Function2.html#value(T1,T2)"><code>Function2.value(Object, Object)</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectIf</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;predicate,
<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection, but only for those elements which return true upon evaluation of the predicate. This is the
 the optimized equivalent of calling iterable.select(predicate).collect(function).
 <p>
 Example using a Java 8 lambda and method reference:
 <pre>
 RichIterable&lt;String&gt; strings = Lists.mutable.with(1, 2, 3).collectIf(e -&gt; e != null, Object::toString);
 </pre>
 <p>
 Example using Predicates factory:
 <pre>
 RichIterable&lt;String&gt; strings = Lists.mutable.with(1, 2, 3).collectIf(Predicates.notNull(), Functions.getToString());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</span>&nbsp;<span class="memberName">flatCollect</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends <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;V&gt;&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block"><code>flatCollect</code> is a special case of <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>. With <code>collect</code>, when the <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> returns
 a collection, the result is a collection of collections. <code>flatCollect</code> outputs a single "flattened" collection
 instead. This method is commonly called flatMap.
 <p>
 Consider the following example where we have a <code>Person</code> class, and each <code>Person</code> has a list of <code>Address</code> objects. Take the following <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a>:
 <pre>
 Function&lt;Person, List&lt;Address&gt;&gt; addressFunction = Person::getAddresses;
 RichIterable&lt;Person&gt; people = ...;
 </pre>
 Using <code>collect</code> returns a collection of collections of addresses.
 <pre>
 RichIterable&lt;List&lt;Address&gt;&gt; addresses = people.collect(addressFunction);
 </pre>
 Using <code>flatCollect</code> returns a single flattened list of addresses.
 <pre>
 RichIterable&lt;Address&gt; addresses = people.flatCollect(addressFunction);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new flattened collection produced by applying the given <code>function</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectWith(org.eclipse.collections.api.block.function.Function2,java.lang.Object)">
<!--   -->
</a><a id="flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;V&gt;</span>&nbsp;<span class="memberName">flatCollectWith</span>&#8203;(<span class="arguments"><a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? super P,&#8203;? extends <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;V&gt;&gt;&nbsp;function,
P&nbsp;parameter)</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>9.2</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../multimap/set/ImmutableSetMultimap.html" title="interface in org.eclipse.collections.api.multimap.set">ImmutableSetMultimap</a>&lt;V,&#8203;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">groupBy</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">For each element of the iterable, the function is evaluated and the results of these evaluations are collected
 into a new multimap, where the transformed value is the key and the original values are added to the same (or similar)
 species of collection as the source iterable.
 <p>
 Example using a Java 8 method reference:
 <pre>
 Multimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(Person::getLastName);
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Multimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getLastName();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../multimap/set/ImmutableSetMultimap.html" title="interface in org.eclipse.collections.api.multimap.set">ImmutableSetMultimap</a>&lt;V,&#8203;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">groupByEach</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;? extends <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;V&gt;&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except the result of evaluating function will return a collection of keys
 for each value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="zip(java.lang.Iterable)">zip</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;S&gt;&gt;</span>&nbsp;<span class="memberName">zip</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;S&gt;&nbsp;that)</span></div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">in 6.0. Use <a href="../ordered/OrderedIterable.html#zip(java.lang.Iterable)"><code>OrderedIterable.zip(Iterable)</code></a> instead.</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#zip(java.lang.Iterable)">RichIterable</a></code></span></div>
<div class="block">Returns a <code>RichIterable</code> formed from this <code>RichIterable</code> and another <code>RichIterable</code> by
 combining corresponding elements in pairs. If one of the two <code>RichIterable</code>s is longer than the other, its
 remaining elements are ignored.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>S</code> - the type of the second half of the returned pairs</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>that</code> - The <code>RichIterable</code> providing the second half of each result pair</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>RichIterable</code> containing pairs consisting of corresponding elements of this <code>
 RichIterable</code> and that. The length of the returned <code>RichIterable</code> is the minimum of the lengths of
 this <code>RichIterable</code> and that.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="zipWithIndex()">zipWithIndex</a></h3>
<div class="memberSignature"><span class="annotations"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang" class="externalLink">@Deprecated</a>
</span><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>,&#8203;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang" class="externalLink">Integer</a>&gt;&gt;</span>&nbsp;<span class="memberName">zipWithIndex</span>()</div>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">in 6.0. Use <a href="../ordered/OrderedIterable.html#zipWithIndex()"><code>OrderedIterable.zipWithIndex()</code></a> instead.</div>
</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#zipWithIndex()">RichIterable</a></code></span></div>
<div class="block">Zips this <code>RichIterable</code> with its indices.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../collection/ImmutableCollection.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../collection/ImmutableCollection.html" title="interface in org.eclipse.collections.api.collection">ImmutableCollection</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="ImmutableSetIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="ImmutableSetIterable.html" title="interface in org.eclipse.collections.api.set">ImmutableSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>RichIterable</code> containing pairs consisting of all elements of this <code>RichIterable</code>
 paired with their index. Indices start at 0.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#zip(java.lang.Iterable)"><code>RichIterable.zip(Iterable)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="castToSet()">castToSet</a></h3>
<div class="memberSignature"><span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util" class="externalLink">Set</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">castToSet</span>()</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="union(org.eclipse.collections.api.set.SetIterable)">union</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">union</span>&#8203;(<span class="arguments"><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;set)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SetIterable.html#union(org.eclipse.collections.api.set.SetIterable)">SetIterable</a></code></span></div>
<div class="block">Returns the set of all objects that are a member of <code>this</code> or <code>set</code> or both. The union of [1, 2, 3]
 and [2, 3, 4] is the set [1, 2, 3, 4]. If equal elements appear in both sets, then the output will contain the
 copy from <code>this</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#union(org.eclipse.collections.api.set.SetIterable)">union</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#union(org.eclipse.collections.api.set.SetIterable)">union</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="intersect(org.eclipse.collections.api.set.SetIterable)">intersect</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">intersect</span>&#8203;(<span class="arguments"><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;set)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SetIterable.html#intersect(org.eclipse.collections.api.set.SetIterable)">SetIterable</a></code></span></div>
<div class="block">Returns the set of all objects that are members of both <code>this</code> and <code>set</code>. The intersection of
 [1, 2, 3] and [2, 3, 4] is the set [2, 3]. The output will contain instances from <code>this</code>, not <code>set</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#intersect(org.eclipse.collections.api.set.SetIterable)">intersect</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#intersect(org.eclipse.collections.api.set.SetIterable)">intersect</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="difference(org.eclipse.collections.api.set.SetIterable)">difference</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">difference</span>&#8203;(<span class="arguments"><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;subtrahendSet)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SetIterable.html#difference(org.eclipse.collections.api.set.SetIterable)">SetIterable</a></code></span></div>
<div class="block">Returns the set of all members of <code>this</code> that are not members of <code>subtrahendSet</code>. The difference of
 [1, 2, 3] and [2, 3, 4] is [1].</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#difference(org.eclipse.collections.api.set.SetIterable)">difference</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#difference(org.eclipse.collections.api.set.SetIterable)">difference</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="symmetricDifference(org.eclipse.collections.api.set.SetIterable)">symmetricDifference</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</span>&nbsp;<span class="memberName">symmetricDifference</span>&#8203;(<span class="arguments"><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;? extends <a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&nbsp;setB)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="SetIterable.html#symmetricDifference(org.eclipse.collections.api.set.SetIterable)">SetIterable</a></code></span></div>
<div class="block">Returns the set of all objects that are a member of exactly one of <code>this</code> and <code>setB</code> (elements which
 are in one of the sets, but not in both). For instance, for the sets [1, 2, 3] and [2, 3, 4], the symmetric
 difference set is [1, 4] . It is the set difference of the union and the intersection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="SetIterable.html#symmetricDifference(org.eclipse.collections.api.set.SetIterable)">symmetricDifference</a></code>&nbsp;in interface&nbsp;<code><a href="SetIterable.html" title="interface in org.eclipse.collections.api.set">SetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#symmetricDifference(org.eclipse.collections.api.set.SetIterable)">symmetricDifference</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="powerSet()">powerSet</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableSet.html" title="interface in org.eclipse.collections.api.set">ImmutableSet</a>&lt;<a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;&gt;</span>&nbsp;<span class="memberName">powerSet</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="UnsortedSetIterable.html#powerSet()">UnsortedSetIterable</a></code></span></div>
<div class="block">Returns the set whose members are all possible subsets of <code>this</code>. For example, the powerset of [1, 2] is
 [[], [1], [2], [1, 2]].</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="UnsortedSetIterable.html#powerSet()">powerSet</a></code>&nbsp;in interface&nbsp;<code><a href="UnsortedSetIterable.html" title="interface in org.eclipse.collections.api.set">UnsortedSetIterable</a>&lt;<a href="ImmutableSet.html" title="type parameter in ImmutableSet">T</a>&gt;</code></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/ImmutableSet.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>
