<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Sat Aug 08 22:45:01 CDT 2020 -->
<title>UnmodifiableRichIterable (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.impl, class: UnmodifiableRichIterable">
<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":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":9,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":10,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete 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/UnmodifiableRichIterable.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.impl</a></div>
<h1 title="Class UnmodifiableRichIterable" class="title">Class UnmodifiableRichIterable&lt;T&gt;</h1>
</div>
<div class="contentContainer">
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">java.lang.Object</a>
<div class="inheritance">org.eclipse.collections.impl.UnmodifiableRichIterable&lt;T&gt;</div>
</div>
<section class="description">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></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="../api/InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a>&lt;T&gt;</code>, <code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;T&gt;</code></dd>
</dl>
<hr>
<pre>public class <span class="typeNameLabel">UnmodifiableRichIterable&lt;T&gt;</span>
extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>
implements <a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;T&gt;, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io" class="externalLink">Serializable</a></pre>
<div class="block">An unmodifiable view of a RichIterable.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../serialized-form.html#org.eclipse.collections.impl.UnmodifiableRichIterable">Serialized Form</a></dd>
</dl>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!--   -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t1" class="tableTab" onclick="show(1);">Static 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="t4" class="tableTab" onclick="show(8);">Concrete 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>&lt;K,&#8203;
V&gt;&nbsp;<a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;K,&#8203;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2)">aggregateBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends K&gt;&nbsp;groupBy,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends V&gt;&nbsp;zeroValueFactory,
<a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super V,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;nonMutatingAggregator)</code></th>
<td class="colLast">
<div class="block">Applies an aggregate function over the iterable grouping results into a map based on the specific groupBy function.</div>
</td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>&lt;K,&#8203;
V&gt;&nbsp;<a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;K,&#8203;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#aggregateInPlaceBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.procedure.Procedure2)">aggregateInPlaceBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends K&gt;&nbsp;groupBy,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends V&gt;&nbsp;zeroValueFactory,
<a href="../api/block/procedure/Procedure2.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure2</a>&lt;? super V,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;mutatingAggregator)</code></th>
<td class="colLast">
<div class="block">Applies an aggregate procedure over the iterable grouping results into a Map based on the specific groupBy function.</div>
</td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">allSatisfy</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to true for every element of the iterable or if the iterable is empty.</div>
</td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>&lt;P&gt;&nbsp;boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">allSatisfyWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to true for every element of the collection, or returns false.</div>
</td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">anySatisfy</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to true for any element of the iterable.</div>
</td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>&lt;P&gt;&nbsp;boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">anySatisfyWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to true for any element of the collection, or return false.</div>
</td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendString(java.lang.Appendable)">appendString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable)</code></th>
<td class="colLast">
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendString(java.lang.Appendable,java.lang.String)">appendString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator)</code></th>
<td class="colLast">
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>.</div>
</td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;start,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;end)</code></th>
<td class="colLast">
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="../api/LazyIterable.html" title="interface in org.eclipse.collections.api">LazyIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#asLazy()">asLazy</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a lazy (deferred) iterable, most likely implemented by calling LazyIterate.adapt(this).</div>
</td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#chunk(int)">chunk</a></span>&#8203;(int&nbsp;size)</code></th>
<td class="colLast">
<div class="block">Partitions elements in fixed size chunks.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i12">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collect(org.eclipse.collections.api.block.function.Function,R)">collect</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="../api/BooleanIterable.html" title="interface in org.eclipse.collections.api">BooleanIterable</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="../api/block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="altColor" id="i14">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableBooleanCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableBooleanCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">collectBoolean</a></span>&#8203;(<a href="../api/block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;booleanFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)"><code>RichIterable.collectBoolean(BooleanFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code><a href="../api/ByteIterable.html" title="interface in org.eclipse.collections.api">ByteIterable</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="../api/block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i16">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableByteCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableByteCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">collectByte</a></span>&#8203;(<a href="../api/block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;byteFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)"><code>RichIterable.collectByte(ByteFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code><a href="../api/CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</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="../api/block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="altColor" id="i18">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableCharCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableCharCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">collectChar</a></span>&#8203;(<a href="../api/block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;charFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)"><code>RichIterable.collectChar(CharFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code><a href="../api/DoubleIterable.html" title="interface in org.eclipse.collections.api">DoubleIterable</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="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i20">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableDoubleCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableDoubleCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">collectDouble</a></span>&#8203;(<a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;doubleFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)"><code>RichIterable.collectDouble(DoubleFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code><a href="../api/FloatIterable.html" title="interface in org.eclipse.collections.api">FloatIterable</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="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="altColor" id="i22">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableFloatCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableFloatCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">collectFloat</a></span>&#8203;(<a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;floatFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)"><code>RichIterable.collectFloat(FloatFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i24">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;<br>R</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,R)">collectIf</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as the collectIf method with two parameters but uses the specified target collection for the results.</div>
</td>
</tr>
<tr class="rowColor" id="i25">
<td class="colFirst"><code><a href="../api/IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</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="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="altColor" id="i26">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableIntCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableIntCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">collectInt</a></span>&#8203;(<a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;intFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)"><code>RichIterable.collectInt(IntFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i27">
<td class="colFirst"><code><a href="../api/LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</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="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i28">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableLongCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableLongCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">collectLong</a></span>&#8203;(<a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;longFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)"><code>RichIterable.collectLong(LongFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i29">
<td class="colFirst"><code><a href="../api/ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</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="../api/block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="altColor" id="i30">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableShortCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableShortCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">collectShort</a></span>&#8203;(<a href="../api/block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;shortFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)"><code>RichIterable.collectShort(ShortFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.</div>
</td>
</tr>
<tr class="rowColor" id="i31">
<td class="colFirst"><code>&lt;P,&#8203;
V&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/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="i32">
<td class="colFirst"><code>&lt;P,&#8203;
V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">collectWith</a></span>&#8203;(<a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter,
R&nbsp;targetCollection)</code></th>
<td class="colLast">
<div class="block">Same as collectWith but with a targetCollection parameter to gather the results.</div>
</td>
</tr>
<tr class="rowColor" id="i33">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.Object)">contains</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</code></th>
<td class="colLast">
<div class="block">Returns true if the iterable has an element which responds true to element.equals(object).</div>
</td>
</tr>
<tr class="altColor" id="i34">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsAll(java.util.Collection)">containsAll</a></span>&#8203;(<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">Collection</a>&lt;?&gt;&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Returns true if all elements in source are contained in this collection.</div>
</td>
</tr>
<tr class="rowColor" id="i35">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsAllArguments(java.lang.Object...)">containsAllArguments</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;elements)</code></th>
<td class="colLast">
<div class="block">Returns true if all elements in the specified var arg array are contained in this collection.</div>
</td>
</tr>
<tr class="altColor" id="i36">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#containsAllIterable(java.lang.Iterable)">containsAllIterable</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;?&gt;&nbsp;source)</code></th>
<td class="colLast">
<div class="block">Returns true if all elements in source are contained in this collection.</div>
</td>
</tr>
<tr class="rowColor" id="i37">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#count(org.eclipse.collections.api.block.predicate.Predicate)">count</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Return the total number of elements that answer true to the specified predicate.</div>
</td>
</tr>
<tr class="altColor" id="i38">
<td class="colFirst"><code>&lt;P&gt;&nbsp;int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">countWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns the total number of elements that evaluate to true for the specified predicate.</div>
</td>
</tr>
<tr class="rowColor" id="i39">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detect(org.eclipse.collections.api.block.predicate.Predicate)">detect</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true or null in the case where no
 element returns true.</div>
</td>
</tr>
<tr class="altColor" id="i40">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">detectIfNone</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true.</div>
</td>
</tr>
<tr class="rowColor" id="i41">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">detectOptional</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true as an Optional.</div>
</td>
</tr>
<tr class="altColor" id="i42">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns the first element that evaluates to true for the specified predicate2 and parameter, or null if none
 evaluate to true.</div>
</td>
</tr>
<tr class="rowColor" id="i43">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">detectWithIfNone</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the first element of the iterable that evaluates to true for the specified predicate2 and parameter, or
 returns the value of evaluating the specified function.</div>
</td>
</tr>
<tr class="altColor" id="i44">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWithOptional</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns the first element that evaluates to true for the specified predicate2 and parameter as an Optional.</div>
</td>
</tr>
<tr class="rowColor" id="i45">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#each(org.eclipse.collections.api.block.procedure.Procedure)">each</a></span>&#8203;(<a href="../api/block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;procedure)</code></th>
<td class="colLast">
<div class="block">The procedure is executed for each element in the iterable.</div>
</td>
</tr>
<tr class="altColor" id="i46">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i47">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollect(org.eclipse.collections.api.block.function.Function,R)">flatCollect</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="altColor" id="i48">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableBooleanCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableBooleanCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">flatCollectBoolean</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/BooleanIterable.html" title="interface in org.eclipse.collections.api">BooleanIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="rowColor" id="i49">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableByteCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableByteCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">flatCollectByte</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/ByteIterable.html" title="interface in org.eclipse.collections.api">ByteIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="altColor" id="i50">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableCharCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableCharCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">flatCollectChar</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="rowColor" id="i51">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableDoubleCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableDoubleCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">flatCollectDouble</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/DoubleIterable.html" title="interface in org.eclipse.collections.api">DoubleIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="altColor" id="i52">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableFloatCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableFloatCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">flatCollectFloat</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/FloatIterable.html" title="interface in org.eclipse.collections.api">FloatIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="rowColor" id="i53">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableIntCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableIntCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">flatCollectInt</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="altColor" id="i54">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableLongCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableLongCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">flatCollectLong</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="rowColor" id="i55">
<td class="colFirst"><code>&lt;R extends <a href="../api/collection/primitive/MutableShortCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableShortCollection</a>&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">flatCollectShort</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</a>&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
</td>
</tr>
<tr class="altColor" id="i56">
<td class="colFirst"><code>&lt;P&gt;&nbsp;void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">forEachWith</a></span>&#8203;(<a href="../api/block/procedure/Procedure2.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;procedure,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">The procedure2 is evaluated for each element in the iterable with the specified parameter provided
 as the second argument.</div>
</td>
</tr>
<tr class="rowColor" id="i57">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a></span>&#8203;(<a href="../api/block/procedure/primitive/ObjectIntProcedure.html" title="interface in org.eclipse.collections.api.block.procedure.primitive">ObjectIntProcedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;objectIntProcedure)</code></th>
<td class="colLast">
<div class="block">Iterates over the iterable passing each element and the current relative int index to the specified instance of
 ObjectIntProcedure.</div>
</td>
</tr>
<tr class="altColor" id="i58">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getFirst()">getFirst</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the first element of an iterable.</div>
</td>
</tr>
<tr class="rowColor" id="i59">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getLast()">getLast</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the last element of an iterable.</div>
</td>
</tr>
<tr class="altColor" id="i60">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getOnly()">getOnly</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the element if the iterable has exactly one element.</div>
</td>
</tr>
<tr class="rowColor" id="i61">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/multimap/Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i62">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <a href="../api/multimap/MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupBy(org.eclipse.collections.api.block.function.Function,R)">groupBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 multimap.</div>
</td>
</tr>
<tr class="rowColor" id="i63">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/multimap/Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/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="altColor" id="i64">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <a href="../api/multimap/MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByEach(org.eclipse.collections.api.block.function.Function,R)">groupByEach</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupByEach(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 multimap.</div>
</td>
</tr>
<tr class="rowColor" id="i65">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)">groupByUniqueKey</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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 he results of these evaluations are collected
 into a new map, where the transformed value is the key.</div>
</td>
</tr>
<tr class="altColor" id="i66">
<td class="colFirst"><code>&lt;V,&#8203;
R extends <a href="../api/map/MutableMapIterable.html" title="interface in org.eclipse.collections.api.map">MutableMapIterable</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">groupByUniqueKey</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupByUniqueKey(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 map.</div>
</td>
</tr>
<tr class="rowColor" id="i67">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">injectInto</a></span>&#8203;(double&nbsp;injectedValue,
<a href="../api/block/function/primitive/DoubleObjectToDoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleObjectToDoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final double result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters.</div>
</td>
</tr>
<tr class="altColor" id="i68">
<td class="colFirst"><code>float</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">injectInto</a></span>&#8203;(float&nbsp;injectedValue,
<a href="../api/block/function/primitive/FloatObjectToFloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatObjectToFloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final float result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters.</div>
</td>
</tr>
<tr class="rowColor" id="i69">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">injectInto</a></span>&#8203;(int&nbsp;injectedValue,
<a href="../api/block/function/primitive/IntObjectToIntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntObjectToIntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final int result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters.</div>
</td>
</tr>
<tr class="altColor" id="i70">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">injectInto</a></span>&#8203;(long&nbsp;injectedValue,
<a href="../api/block/function/primitive/LongObjectToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongObjectToLongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final long result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters.</div>
</td>
</tr>
<tr class="rowColor" id="i71">
<td class="colFirst"><code>&lt;IV&gt;&nbsp;IV</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#injectInto(IV,org.eclipse.collections.api.block.function.Function2)">injectInto</a></span>&#8203;(IV&nbsp;injectedValue,
<a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super IV,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends IV&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters.</div>
</td>
</tr>
<tr class="altColor" id="i72">
<td class="colFirst"><code>&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#into(R)">into</a></span>&#8203;(R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Adds all the elements in this iterable to the specific target Collection.</div>
</td>
</tr>
<tr class="rowColor" id="i73">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isEmpty()">isEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns true if this iterable has zero items.</div>
</td>
</tr>
<tr class="altColor" id="i74">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#iterator()">iterator</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i75">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeString()">makeString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this collection by delegating to <a href="../api/RichIterable.html#makeString(java.lang.String)"><code>RichIterable.makeString(String)</code></a> and defaulting
 the separator parameter to the characters <code>", "</code> (comma and space).</div>
</td>
</tr>
<tr class="altColor" id="i76">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeString(java.lang.String)">makeString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator)</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this collection by delegating to <a href="../api/RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)"><code>RichIterable.makeString(String, String, String)</code></a>
 and defaulting the start and end parameters to <code>""</code> (the empty String).</div>
</td>
</tr>
<tr class="rowColor" id="i77">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;start,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;end)</code></th>
<td class="colLast">
<div class="block">Returns a string representation of this collection with the elements separated by the specified
 separator and enclosed between the start and end strings.</div>
</td>
</tr>
<tr class="altColor" id="i78">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#max()">max</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the maximum element out of this container based on the natural order.</div>
</td>
</tr>
<tr class="rowColor" id="i79">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#max(java.util.Comparator)">max</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</code></th>
<td class="colLast">
<div class="block">Returns the maximum element out of this container based on the comparator.</div>
</td>
</tr>
<tr class="altColor" id="i80">
<td class="colFirst"><code>&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;<br><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#maxBy(org.eclipse.collections.api.block.function.Function)">maxBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the maximum elements out of this container based on the natural order of the attribute returned by Function.</div>
</td>
</tr>
<tr class="rowColor" id="i81">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#min()">min</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the minimum element out of this container based on the natural order.</div>
</td>
</tr>
<tr class="altColor" id="i82">
<td class="colFirst"><code><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#min(java.util.Comparator)">min</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</code></th>
<td class="colLast">
<div class="block">Returns the minimum element out of this container based on the comparator.</div>
</td>
</tr>
<tr class="rowColor" id="i83">
<td class="colFirst"><code>&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;<br><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#minBy(org.eclipse.collections.api.block.function.Function)">minBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the minimum elements out of this container based on the natural order of the attribute returned by Function.</div>
</td>
</tr>
<tr class="altColor" id="i84">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">noneSatisfy</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to false for every element of the iterable or if the iterable is empty.</div>
</td>
</tr>
<tr class="rowColor" id="i85">
<td class="colFirst"><code>&lt;P&gt;&nbsp;boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">noneSatisfyWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Returns true if the predicate evaluates to false for every element of the collection, or return false.</div>
</td>
</tr>
<tr class="altColor" id="i86">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#notEmpty()">notEmpty</a></span>()</code></th>
<td class="colLast">
<div class="block">The English equivalent of !this.isEmpty()</div>
</td>
</tr>
<tr class="rowColor" id="i87">
<td class="colFirst"><code>static &lt;E,&#8203;
RI extends <a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;E&gt;&gt;<br><a href="UnmodifiableRichIterable.html" title="class in org.eclipse.collections.impl">UnmodifiableRichIterable</a>&lt;E&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#of(RI)">of</a></span>&#8203;(RI&nbsp;iterable)</code></th>
<td class="colLast">
<div class="block">This method will take a RichIterable and wrap it directly in a UnmodifiableRichIterable.</div>
</td>
</tr>
<tr class="altColor" id="i88">
<td class="colFirst"><code><a href="../api/partition/PartitionIterable.html" title="interface in org.eclipse.collections.api.partition">PartitionIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i89">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="../api/partition/PartitionIterable.html" title="interface in org.eclipse.collections.api.partition">PartitionIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="i90">
<td class="colFirst"><code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="rowColor" id="i91">
<td class="colFirst"><code>&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reject(org.eclipse.collections.api.block.predicate.Predicate,R)">reject</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as the reject method with one parameter but uses the specified target collection for the results.</div>
</td>
</tr>
<tr class="altColor" id="i92">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../api/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="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i93">
<td class="colFirst"><code>&lt;P,&#8203;
R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">rejectWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
R&nbsp;targetCollection)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.reject(Predicate, Collection)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i94">
<td class="colFirst"><code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="rowColor" id="i95">
<td class="colFirst"><code>&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(org.eclipse.collections.api.block.predicate.Predicate,R)">select</a></span>&#8203;(<a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as the select method with one parameter but uses the specified target collection for the results.</div>
</td>
</tr>
<tr class="altColor" id="i96">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="i97">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../api/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="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i98">
<td class="colFirst"><code>&lt;P,&#8203;
R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">selectWith</a></span>&#8203;(<a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
R&nbsp;targetCollection)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.select(Predicate, Collection)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i99">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#size()">size</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the number of items in this iterable.</div>
</td>
</tr>
<tr class="altColor" id="i100">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/map/primitive/ObjectDoubleMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectDoubleMap</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumByDouble</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Groups and sums the values using the two specified functions.</div>
</td>
</tr>
<tr class="rowColor" id="i101">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/map/primitive/ObjectDoubleMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectDoubleMap</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumByFloat</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Groups and sums the values using the two specified functions.</div>
</td>
</tr>
<tr class="altColor" id="i102">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/map/primitive/ObjectLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectLongMap</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">sumByInt</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Groups and sums the values using the two specified functions.</div>
</td>
</tr>
<tr class="rowColor" id="i103">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../api/map/primitive/ObjectLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectLongMap</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">sumByLong</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Groups and sums the values using the two specified functions.</div>
</td>
</tr>
<tr class="altColor" id="i104">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumOfDouble</a></span>&#8203;(<a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final double result of evaluating function for each element of the iterable and adding the results
 together.</div>
</td>
</tr>
<tr class="rowColor" id="i105">
<td class="colFirst"><code>double</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumOfFloat</a></span>&#8203;(<a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final double result of evaluating function for each element of the iterable and adding the results
 together.</div>
</td>
</tr>
<tr class="altColor" id="i106">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">sumOfInt</a></span>&#8203;(<a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final long result of evaluating function for each element of the iterable and adding the results
 together.</div>
</td>
</tr>
<tr class="rowColor" id="i107">
<td class="colFirst"><code>long</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">sumOfLong</a></span>&#8203;(<a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns the final long result of evaluating function for each element of the iterable and adding the results
 together.</div>
</td>
</tr>
<tr class="altColor" id="i108">
<td class="colFirst"><code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="rowColor" id="i109">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray()">toArray</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts this iterable to an array.</div>
</td>
</tr>
<tr class="altColor" id="i110">
<td class="colFirst"><code>&lt;T&gt;&nbsp;T[]</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toArray(T%5B%5D)">toArray</a></span>&#8203;(T[]&nbsp;a)</code></th>
<td class="colLast">
<div class="block">Converts this iterable to an array using the specified target array, assuming the target array is as long
 or longer than the iterable.</div>
</td>
</tr>
<tr class="rowColor" id="i111">
<td class="colFirst"><code><a href="../api/bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBag()">toBag</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to the default MutableBag implementation.</div>
</td>
</tr>
<tr class="altColor" id="i112">
<td class="colFirst"><code>&lt;NK,&#8203;
NV&gt;&nbsp;<a href="../api/bimap/MutableBiMap.html" title="interface in org.eclipse.collections.api.bimap">MutableBiMap</a>&lt;NK,&#8203;NV&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toBiMap</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a BiMap implementation using the specified key and value functions.</div>
</td>
</tr>
<tr class="rowColor" id="i113">
<td class="colFirst"><code><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toList()">toList</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableList implementation.</div>
</td>
</tr>
<tr class="altColor" id="i114">
<td class="colFirst"><code>&lt;NK,&#8203;
NV&gt;&nbsp;<a href="../api/map/MutableMap.html" title="interface in org.eclipse.collections.api.map">MutableMap</a>&lt;NK,&#8203;NV&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toMap</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableMap implementation using the specified key and value functions.</div>
</td>
</tr>
<tr class="rowColor" id="i115">
<td class="colFirst"><code>&lt;NK,&#8203;
NV,&#8203;
R extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;NK,&#8203;
NV&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">toMap</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)"><code>RichIterable.toMap(Function, Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 map.</div>
</td>
</tr>
<tr class="altColor" id="i116">
<td class="colFirst"><code><a href="../api/set/MutableSet.html" title="interface in org.eclipse.collections.api.set">MutableSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSet()">toSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSet implementation.</div>
</td>
</tr>
<tr class="rowColor" id="i117">
<td class="colFirst"><code><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedBag()">toSortedBag</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedBag implementation and sorts it using the natural order of the
 elements.</div>
</td>
</tr>
<tr class="altColor" id="i118">
<td class="colFirst"><code><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedBag(java.util.Comparator)">toSortedBag</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</code></th>
<td class="colLast">
<div class="block">Converts the collection to the MutableSortedBag implementation and sorts it using the specified comparator.</div>
</td>
</tr>
<tr class="rowColor" id="i119">
<td class="colFirst"><code>&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;<br><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedBagBy(org.eclipse.collections.api.block.function.Function)">toSortedBagBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedBag implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
</td>
</tr>
<tr class="altColor" id="i120">
<td class="colFirst"><code><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedList()">toSortedList</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableList implementation and sorts it using the natural order of the elements.</div>
</td>
</tr>
<tr class="rowColor" id="i121">
<td class="colFirst"><code><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedList(java.util.Comparator)">toSortedList</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableList implementation and sorts it using the specified comparator.</div>
</td>
</tr>
<tr class="altColor" id="i122">
<td class="colFirst"><code>&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;<br><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedListBy(org.eclipse.collections.api.block.function.Function)">toSortedListBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableList implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i123">
<td class="colFirst"><code>&lt;NK,&#8203;
NV&gt;&nbsp;<a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super NK&gt;&nbsp;comparator,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 sorted by the given comparator.</div>
</td>
</tr>
<tr class="altColor" id="i124">
<td class="colFirst"><code>&lt;NK,&#8203;
NV&gt;&nbsp;<a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 sorted by the key elements' natural ordering.</div>
</td>
</tr>
<tr class="rowColor" id="i125">
<td class="colFirst"><code>&lt;KK extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super KK&gt;,&#8203;
NK,&#8203;
NV&gt;<br><a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedMapBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMapBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super NK,&#8203;KK&gt;&nbsp;sortBy,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 and sorts it based on the natural order of the attribute returned by <code>sortBy</code> function.</div>
</td>
</tr>
<tr class="altColor" id="i126">
<td class="colFirst"><code><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedSet()">toSortedSet</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it using the natural order of the
 elements.</div>
</td>
</tr>
<tr class="rowColor" id="i127">
<td class="colFirst"><code><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedSet(java.util.Comparator)">toSortedSet</a></span>&#8203;(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it using the specified comparator.</div>
</td>
</tr>
<tr class="altColor" id="i128">
<td class="colFirst"><code>&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;<br><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toSortedSetBy(org.eclipse.collections.api.block.function.Function)">toSortedSetBy</a></span>&#8203;(<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
</td>
</tr>
<tr class="rowColor" id="i129">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toString()">toString</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a string with the elements of this iterable separated by commas with spaces and
 enclosed in square brackets.</div>
</td>
</tr>
<tr class="altColor" id="i130">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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">Returns a <code>RichIterable</code> formed from this <code>RichIterable</code> and another <code>RichIterable</code> by
 combining corresponding elements in pairs.</div>
</td>
</tr>
<tr class="rowColor" id="i131">
<td class="colFirst"><code>&lt;S,&#8203;
R extends <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">Collection</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;
S&gt;&gt;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#zip(java.lang.Iterable,R)">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,
R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#zip(java.lang.Iterable)"><code>RichIterable.zip(Iterable)</code></a> but uses <code>target</code> for output.</div>
</td>
</tr>
<tr class="altColor" id="i132">
<td class="colFirst"><code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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">Zips this <code>RichIterable</code> with its indices.</div>
</td>
</tr>
<tr class="rowColor" id="i133">
<td class="colFirst"><code>&lt;R extends <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">Collection</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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;&gt;<br>R</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#zipWithIndex(R)">zipWithIndex</a></span>&#8203;(R&nbsp;target)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../api/RichIterable.html#zipWithIndex()"><code>RichIterable.zipWithIndex()</code></a> but uses <code>target</code> for output.</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></h3>
<a id="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang" class="externalLink">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang" class="externalLink">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang" class="externalLink">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang" class="externalLink">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait(long,int)" title="class or interface in java.lang" class="externalLink">wait</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../api/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="../api/InternalIterable.html#forEach(java.util.function.Consumer)">forEach</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#spliterator()" title="class or interface in java.lang" class="externalLink">spliterator</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../api/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="../api/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="../api/RichIterable.html#containsBy(org.eclipse.collections.api.block.function.Function,V)">containsBy</a>, <a href="../api/RichIterable.html#countBy(org.eclipse.collections.api.block.function.Function)">countBy</a>, <a href="../api/RichIterable.html#countBy(org.eclipse.collections.api.block.function.Function,R)">countBy</a>, <a href="../api/RichIterable.html#countByEach(org.eclipse.collections.api.block.function.Function)">countByEach</a>, <a href="../api/RichIterable.html#countByEach(org.eclipse.collections.api.block.function.Function,R)">countByEach</a>, <a href="../api/RichIterable.html#countByWith(org.eclipse.collections.api.block.function.Function2,P)">countByWith</a>, <a href="../api/RichIterable.html#countByWith(org.eclipse.collections.api.block.function.Function2,P,R)">countByWith</a>, <a href="../api/RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a>, <a href="../api/RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P,R)">flatCollectWith</a>, <a href="../api/RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)">forEach</a>, <a href="../api/RichIterable.html#getAny()">getAny</a>, <a href="../api/RichIterable.html#groupByAndCollect(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">groupByAndCollect</a>, <a href="../api/RichIterable.html#maxByOptional(org.eclipse.collections.api.block.function.Function)">maxByOptional</a>, <a href="../api/RichIterable.html#maxOptional()">maxOptional</a>, <a href="../api/RichIterable.html#maxOptional(java.util.Comparator)">maxOptional</a>, <a href="../api/RichIterable.html#minByOptional(org.eclipse.collections.api.block.function.Function)">minByOptional</a>, <a href="../api/RichIterable.html#minOptional()">minOptional</a>, <a href="../api/RichIterable.html#minOptional(java.util.Comparator)">minOptional</a>, <a href="../api/RichIterable.html#reduce(java.util.function.BinaryOperator)">reduce</a>, <a href="../api/RichIterable.html#reduceInPlace(java.util.function.Supplier,java.util.function.BiConsumer)">reduceInPlace</a>, <a href="../api/RichIterable.html#reduceInPlace(java.util.stream.Collector)">reduceInPlace</a>, <a href="../api/RichIterable.html#summarizeDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">summarizeDouble</a>, <a href="../api/RichIterable.html#summarizeFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">summarizeFloat</a>, <a href="../api/RichIterable.html#summarizeInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">summarizeInt</a>, <a href="../api/RichIterable.html#summarizeLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">summarizeLong</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="of(org.eclipse.collections.api.RichIterable)">
<!--   -->
</a><a id="of(RI)">of</a></h3>
<div class="memberSignature"><span class="modifiers">public static</span>&nbsp;<span class="typeParameters">&lt;E,&#8203;
RI extends <a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;E&gt;&gt;</span>
<span class="returnType"><a href="UnmodifiableRichIterable.html" title="class in org.eclipse.collections.impl">UnmodifiableRichIterable</a>&lt;E&gt;</span>&nbsp;<span class="memberName">of</span>&#8203;(<span class="arguments">RI&nbsp;iterable)</span></div>
<div class="block">This method will take a RichIterable and wrap it directly in a UnmodifiableRichIterable.</div>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="select(org.eclipse.collections.api.block.predicate.Predicate,java.util.Collection)">
<!--   -->
</a><a id="select(org.eclipse.collections.api.block.predicate.Predicate,R)">select</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)">RichIterable</a></code></span></div>
<div class="block">Same as the select method with one parameter but uses the specified target collection for the results.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 MutableList&lt;Person&gt; selected =
     people.select(person -&gt; person.person.getLastName().equals("Smith"), Lists.mutable.empty());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&lt;Person&gt; selected =
     people.select(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.person.getLastName().equals("Smith");
         }
     }, Lists.mutable.empty());
 </pre>
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate</code></a> to use as the select criteria</dd>
<dd><code>target</code> - the Collection to append to for all elements in this <code>RichIterable</code> that meet select criteria <code>predicate</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the select criteria</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/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="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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">selectWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../api/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="../api/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="../api/RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/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="../api/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="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object,java.util.Collection)">
<!--   -->
</a><a id="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">selectWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">selectWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
R&nbsp;targetCollection)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.select(Predicate, Collection)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../api/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>
 MutableList&lt;Person&gt; selected =
     people.selectWith((Person person, Integer age) -&gt; person.getAge()&gt;= age, Integer.valueOf(18), Lists.mutable.empty());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&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), Lists.mutable.empty());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/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>
<dd><code>targetCollection</code> - the Collection to append to for all elements in this <code>RichIterable</code> that meet select criteria <code>predicate</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>targetCollection</code>, which contains appended elements as a result of the select criteria</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a>, 
<a href="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.select(Predicate, Collection)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="reject(org.eclipse.collections.api.block.predicate.Predicate,java.util.Collection)">
<!--   -->
</a><a id="reject(org.eclipse.collections.api.block.predicate.Predicate,R)">reject</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)">RichIterable</a></code></span></div>
<div class="block">Same as the reject method with one parameter but uses the specified target collection for the results.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 MutableList&lt;Person&gt; rejected =
     people.reject(person -&gt; person.person.getLastName().equals("Smith"), Lists.mutable.empty());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&lt;Person&gt; rejected =
     people.reject(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.person.getLastName().equals("Smith");
         }
     }, Lists.mutable.empty());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate</code></a> to use as the reject criteria</dd>
<dd><code>target</code> - the Collection to append to for all elements in this <code>RichIterable</code> that cause <code>Predicate#accept(Object)</code> method to evaluate to false</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the reject criteria</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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">rejectWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../api/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="../api/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="../api/RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/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="../api/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="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object,java.util.Collection)">
<!--   -->
</a><a id="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">rejectWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">rejectWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
R&nbsp;targetCollection)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.reject(Predicate, Collection)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../api/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>
 MutableList&lt;Person&gt; rejected =
     people.rejectWith((Person person, Integer age) -&gt; person.getAge() &lt; age, Integer.valueOf(18), Lists.mutable.empty());
 </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), Lists.mutable.empty());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the reject 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>
<dd><code>targetCollection</code> - the Collection to append to for all elements in this <code>RichIterable</code> that cause <code>Predicate#accept(Object)</code> method to evaluate to false</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>targetCollection</code>, which contains appended elements as a result of the reject criteria</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.reject(Predicate)</code></a>, 
<a href="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)"><code>RichIterable.reject(Predicate, Collection)</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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/partition/PartitionIterable.html" title="interface in org.eclipse.collections.api.partition">PartitionIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">partition</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="../api/partition/PartitionIterable.html" title="interface in org.eclipse.collections.api.partition">PartitionIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">partitionWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/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="../api/RichIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,java.util.Collection)">
<!--   -->
</a><a id="collect(org.eclipse.collections.api.block.function.Function,R)">collect</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collect</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 MutableList&lt;String&gt; names =
     people.collect(person -&gt; person.getFirstName() + " " + person.getLastName(), Lists.mutable.empty());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&lt;String&gt; names =
     people.collect(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getFirstName() + " " + person.getLastName();
         }
     }, Lists.mutable.empty());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function,R)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - a <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the Collection to append to for all elements in this <code>RichIterable</code> that meet select criteria <code>function</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/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="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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectWith</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/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="../api/RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - A <a href="../api/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="../api/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="../api/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="collectWith(org.eclipse.collections.api.block.function.Function2,java.lang.Object,java.util.Collection)">
<!--   -->
</a><a id="collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">collectWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectWith</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter,
R&nbsp;targetCollection)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">RichIterable</a></code></span></div>
<div class="block">Same as collectWith but with a targetCollection parameter to gather the results.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 MutableSet&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith((each, parameter) -&gt; each + parameter, Integer.valueOf(1), Sets.mutable.empty());
 </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(final Integer each, final Integer parameter)
         {
             return each + parameter;
         }
     };
 MutableSet&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith(addParameterFunction, Integer.valueOf(1), Sets.mutable.empty());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - a <a href="../api/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>
<dd><code>targetCollection</code> - the Collection to append to for all elements in this <code>RichIterable</code> that meet select criteria <code>function</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>targetCollection</code>, which contains appended elements as a result of the collect transformation</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,java.util.Collection)">
<!--   -->
</a><a id="collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function,R)">collectIf</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectIf</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as the collectIf method with two parameters but uses the specified target collection for the results.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function,R)">collectIf</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate</code></a> to use as the select criteria</dd>
<dd><code>function</code> - a <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the Collection to append to for all elements in this <code>RichIterable</code> that meet the collect criteria <code>predicate</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>targetCollection</code>, which contains appended elements as a result of the collect criteria and transformation</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collectIf(Predicate, Function)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollect(org.eclipse.collections.api.block.function.Function,java.util.Collection)">
<!--   -->
</a><a id="flatCollect(org.eclipse.collections.api.block.function.Function,R)">flatCollect</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <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">Collection</a>&lt;V&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollect</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function,R)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="contains(java.lang.Object)">contains</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">contains</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>&nbsp;object)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#contains(java.lang.Object)">RichIterable</a></code></span></div>
<div class="block">Returns true if the iterable has an element which responds true to element.equals(object).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#contains(java.lang.Object)">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containsAllIterable(java.lang.Iterable)">containsAllIterable</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">containsAllIterable</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;?&gt;&nbsp;source)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#containsAllIterable(java.lang.Iterable)">RichIterable</a></code></span></div>
<div class="block">Returns true if all elements in source are contained in this collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#containsAllIterable(java.lang.Iterable)">containsAllIterable</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containsAll(java.util.Collection)">containsAll</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">containsAll</span>&#8203;(<span class="arguments"><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">Collection</a>&lt;?&gt;&nbsp;source)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#containsAll(java.util.Collection)">RichIterable</a></code></span></div>
<div class="block">Returns true if all elements in source are contained in this collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#containsAll(java.util.Collection)">containsAll</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#containsAll(java.util.Collection)" title="class or interface in java.util" class="externalLink"><code>Collection.containsAll(Collection)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="containsAllArguments(java.lang.Object...)">containsAllArguments</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">containsAllArguments</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>...&nbsp;elements)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#containsAllArguments(java.lang.Object...)">RichIterable</a></code></span></div>
<div class="block">Returns true if all elements in the specified var arg array are contained in this collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#containsAllArguments(java.lang.Object...)">containsAllArguments</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toArray()">toArray</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a>[]</span>&nbsp;<span class="memberName">toArray</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toArray()">RichIterable</a></code></span></div>
<div class="block">Converts this iterable to an array.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toArray()">toArray</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#toArray()" title="class or interface in java.util" class="externalLink"><code>Collection.toArray()</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toArray(java.lang.Object[])">
<!--   -->
</a><a id="toArray(T[])">toArray</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;T&gt;</span>&nbsp;<span class="returnType">T[]</span>&nbsp;<span class="memberName">toArray</span>&#8203;(<span class="arguments">T[]&nbsp;a)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toArray(E%5B%5D)">RichIterable</a></code></span></div>
<div class="block">Converts this iterable to an array using the specified target array, assuming the target array is as long
 or longer than the iterable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toArray(E%5B%5D)">toArray</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true#toArray(T%5B%5D)" title="class or interface in java.util" class="externalLink"><code>Collection.toArray(Object[])</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">tap</span>&#8203;(<span class="arguments"><a href="../api/block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;procedure)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.each(Procedure)</code></a>, 
<a href="../api/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="each(org.eclipse.collections.api.block.procedure.Procedure)">each</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">each</span>&#8203;(<span class="arguments"><a href="../api/block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;procedure)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)">RichIterable</a></code></span></div>
<div class="block">The procedure is executed for each element in the iterable.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 people.each(person -&gt; LOGGER.info(person.getName()));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 people.each(new Procedure&lt;Person&gt;()
 {
     public void value(Person person)
     {
         LOGGER.info(person.getName());
     }
 });
 </pre>
 This method is a variant of <a href="../api/InternalIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)"><code>InternalIterable.forEach(Procedure)</code></a>
 that has a signature conflict with <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink"><code>Iterable.forEach(java.util.function.Consumer)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)">each</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/InternalIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)"><code>InternalIterable.forEach(Procedure)</code></a>, 
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach(java.util.function.Consumer)" title="class or interface in java.lang" class="externalLink"><code>Iterable.forEach(java.util.function.Consumer)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">forEachWithIndex</span>&#8203;(<span class="arguments"><a href="../api/block/procedure/primitive/ObjectIntProcedure.html" title="interface in org.eclipse.collections.api.block.procedure.primitive">ObjectIntProcedure</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;objectIntProcedure)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/InternalIterable.html#forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">InternalIterable</a></code></span></div>
<div class="block">Iterates over the iterable passing each element and the current relative int index to the specified instance of
 ObjectIntProcedure.
 <p>
 Example using a Java 8 lambda:
 <pre>
 people.forEachWithIndex((Person person, int index) -&gt; LOGGER.info("Index: " + index + " person: " + person.getName()));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 people.forEachWithIndex(new ObjectIntProcedure&lt;Person&gt;()
 {
     public void value(Person person, int index)
     {
         LOGGER.info("Index: " + index + " person: " + person.getName());
     }
 });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/InternalIterable.html#forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../api/InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,java.lang.Object)">
<!--   -->
</a><a id="forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">forEachWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">forEachWith</span>&#8203;(<span class="arguments"><a href="../api/block/procedure/Procedure2.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;procedure,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/InternalIterable.html#forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">InternalIterable</a></code></span></div>
<div class="block">The procedure2 is evaluated for each element in the iterable with the specified parameter provided
 as the second argument.
 <p>
 Example using a Java 8 lambda:
 <pre>
 people.forEachWith((Person person, Person other) -&gt;
     {
         if (person.isRelatedTo(other))
         {
              LOGGER.info(person.getName());
         }
     }, fred);
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 people.forEachWith(new Procedure2&lt;Person, Person&gt;()
 {
     public void value(Person person, Person other)
     {
         if (person.isRelatedTo(other))
         {
              LOGGER.info(person.getName());
         }
     }
 }, fred);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/InternalIterable.html#forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">forEachWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="notEmpty()">notEmpty</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">notEmpty</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#notEmpty()">RichIterable</a></code></span></div>
<div class="block">The English equivalent of !this.isEmpty()</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#notEmpty()">notEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="isEmpty()">isEmpty</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">isEmpty</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#isEmpty()">RichIterable</a></code></span></div>
<div class="block">Returns true if this iterable has zero items.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#isEmpty()">isEmpty</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="size()">size</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">size</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#size()">RichIterable</a></code></span></div>
<div class="block">Returns the number of items in this iterable.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#size()">size</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getFirst()">getFirst</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">getFirst</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#getFirst()">RichIterable</a></code></span></div>
<div class="block">Returns the first element of an iterable. In the case of a List it is the element at the first index. In the
 case of any other Collection, it is the first element that would be returned during an iteration. If the
 iterable is empty, null is returned. If null is a valid element of the container, then a developer would need to
 check to see if the iterable is empty to validate that a null result was not due to the container being empty.
 <p>
 The order of Sets are not guaranteed (except for TreeSets and other Ordered Set implementations), so if you use
 this method, the first element could be any element from the Set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#getFirst()">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getLast()">getLast</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">getLast</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#getLast()">RichIterable</a></code></span></div>
<div class="block">Returns the last element of an iterable. In the case of a List it is the element at the last index. In the case
 of any other Collection, it is the last element that would be returned during an iteration. If the iterable is
 empty, null is returned. If null is a valid element of the container, then a developer would need to check to
 see if the iterable is empty to validate that a null result was not due to the container being empty.
 <p>
 The order of Sets are not guaranteed (except for TreeSets and other Ordered Set implementations), so if you use
 this method, the last element could be any element from the Set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#getLast()">getLast</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getOnly()">getOnly</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">getOnly</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#getOnly()">RichIterable</a></code></span></div>
<div class="block">Returns the element if the iterable has exactly one element. Otherwise, throw <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalStateException.html?is-external=true" title="class or interface in java.lang" class="externalLink"><code>IllegalStateException</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#getOnly()">getOnly</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an element of an iterable.</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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../api/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="../api/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="selectInstancesOf(java.lang.Class)">selectInstancesOf</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</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="../api/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="../api/RichIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collect</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/BooleanIterable.html" title="interface in org.eclipse.collections.api">BooleanIterable</a></span>&nbsp;<span class="memberName">collectBoolean</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;booleanFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableBooleanCollection)">
<!--   -->
</a><a id="collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">collectBoolean</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableBooleanCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableBooleanCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectBoolean</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;booleanFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)"><code>RichIterable.collectBoolean(BooleanFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 BooleanArrayList licenses =
     people.collectBoolean(person -&gt; person.hasDrivingLicense(), new BooleanArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 BooleanArrayList licenses =
     people.collectBoolean(new BooleanFunction&lt;Person&gt;()
     {
         public boolean booleanValueOf(Person person)
         {
             return person.hasDrivingLicense();
         }
     }, new BooleanArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>booleanFunction</code> - a <a href="../api/block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>BooleanFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableBooleanCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectBoolean(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableBooleanCollection)">
<!--   -->
</a><a id="flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">flatCollectBoolean</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableBooleanCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableBooleanCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectBoolean</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/BooleanIterable.html" title="interface in org.eclipse.collections.api">BooleanIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">flatCollectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/ByteIterable.html" title="interface in org.eclipse.collections.api">ByteIterable</a></span>&nbsp;<span class="memberName">collectByte</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;byteFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableByteCollection)">
<!--   -->
</a><a id="collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">collectByte</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableByteCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableByteCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectByte</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;byteFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)"><code>RichIterable.collectByte(ByteFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ByteArrayList bytes =
     people.collectByte(person -&gt; person.getCode(), new ByteArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ByteArrayList bytes =
     people.collectByte(new ByteFunction&lt;Person&gt;()
     {
         public byte byteValueOf(Person person)
         {
             return person.getCode();
         }
     }, new ByteArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>byteFunction</code> - a <a href="../api/block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>ByteFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableByteCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectByte(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableByteCollection)">
<!--   -->
</a><a id="flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">flatCollectByte</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableByteCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableByteCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectByte</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/ByteIterable.html" title="interface in org.eclipse.collections.api">ByteIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">flatCollectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</a></span>&nbsp;<span class="memberName">collectChar</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;charFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableCharCollection)">
<!--   -->
</a><a id="collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">collectChar</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableCharCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableCharCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectChar</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;charFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)"><code>RichIterable.collectChar(CharFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 CharArrayList chars =
     people.collectChar(person -&gt; person.getMiddleInitial(), new CharArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 CharArrayList chars =
     people.collectChar(new CharFunction&lt;Person&gt;()
     {
         public char charValueOf(Person person)
         {
             return person.getMiddleInitial();
         }
     }, new CharArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>charFunction</code> - a <a href="../api/block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>CharFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableCharCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectChar(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableCharCollection)">
<!--   -->
</a><a id="flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">flatCollectChar</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableCharCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableCharCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectChar</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/CharIterable.html" title="interface in org.eclipse.collections.api">CharIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">flatCollectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/DoubleIterable.html" title="interface in org.eclipse.collections.api">DoubleIterable</a></span>&nbsp;<span class="memberName">collectDouble</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;doubleFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableDoubleCollection)">
<!--   -->
</a><a id="collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">collectDouble</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableDoubleCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableDoubleCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectDouble</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;doubleFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)"><code>RichIterable.collectDouble(DoubleFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 DoubleArrayList doubles =
     people.collectDouble(person -&gt; person.getMilesFromNorthPole(), new DoubleArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 DoubleArrayList doubles =
     people.collectDouble(new DoubleFunction&lt;Person&gt;()
     {
         public double doubleValueOf(Person person)
         {
             return person.getMilesFromNorthPole();
         }
     }, new DoubleArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>doubleFunction</code> - a <a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>DoubleFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableDoubleCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableDoubleCollection)">
<!--   -->
</a><a id="flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">flatCollectDouble</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableDoubleCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableDoubleCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectDouble</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/DoubleIterable.html" title="interface in org.eclipse.collections.api">DoubleIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">flatCollectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/FloatIterable.html" title="interface in org.eclipse.collections.api">FloatIterable</a></span>&nbsp;<span class="memberName">collectFloat</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;floatFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableFloatCollection)">
<!--   -->
</a><a id="collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">collectFloat</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableFloatCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableFloatCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectFloat</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;floatFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)"><code>RichIterable.collectFloat(FloatFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 FloatArrayList floats =
     people.collectFloat(person -&gt; person.getHeightInInches(), new FloatArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 FloatArrayList floats =
     people.collectFloat(new FloatFunction&lt;Person&gt;()
     {
         public float floatValueOf(Person person)
         {
             return person.getHeightInInches();
         }
     }, new FloatArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>floatFunction</code> - a <a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>FloatFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableFloatCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableFloatCollection)">
<!--   -->
</a><a id="flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">flatCollectFloat</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableFloatCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableFloatCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectFloat</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/FloatIterable.html" title="interface in org.eclipse.collections.api">FloatIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">flatCollectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</a></span>&nbsp;<span class="memberName">collectInt</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;intFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableIntCollection)">
<!--   -->
</a><a id="collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">collectInt</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableIntCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableIntCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectInt</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;intFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)"><code>RichIterable.collectInt(IntFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 IntArrayList ints =
     people.collectInt(person -&gt; person.getAge(), new IntArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 IntArrayList ints =
     people.collectInt(new IntFunction&lt;Person&gt;()
     {
         public int intValueOf(Person person)
         {
             return person.getAge();
         }
     }, new IntArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>intFunction</code> - a <a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>IntFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableIntCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableIntCollection)">
<!--   -->
</a><a id="flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">flatCollectInt</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableIntCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableIntCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectInt</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/IntIterable.html" title="interface in org.eclipse.collections.api">IntIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">flatCollectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</a></span>&nbsp;<span class="memberName">collectLong</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;longFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableLongCollection)">
<!--   -->
</a><a id="collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">collectLong</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableLongCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableLongCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectLong</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;longFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)"><code>RichIterable.collectLong(LongFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 LongArrayList longs =
     people.collectLong(person -&gt; person.getGuid(), new LongArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 LongArrayList longs =
     people.collectLong(new LongFunction&lt;Person&gt;()
     {
         public long longValueOf(Person person)
         {
             return person.getGuid();
         }
     }, new LongArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>longFunction</code> - a <a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>LongFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableLongCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableLongCollection)">
<!--   -->
</a><a id="flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">flatCollectLong</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableLongCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableLongCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectLong</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/LongIterable.html" title="interface in org.eclipse.collections.api">LongIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">flatCollectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</a></span>&nbsp;<span class="memberName">collectShort</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;shortFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.collection.primitive.MutableShortCollection)">
<!--   -->
</a><a id="collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">collectShort</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableShortCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableShortCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">collectShort</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;shortFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)"><code>RichIterable.collectShort(ShortFunction)</code></a>, except that the results are gathered into the specified <code>target</code>
 collection.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ShortArrayList shorts =
     people.collectShort(person -&gt; person.getNumberOfJunkMailItemsReceivedPerMonth, new ShortArrayList());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ShortArrayList shorts =
     people.collectShort(new ShortFunction&lt;Person&gt;()
     {
         public short shortValueOf(Person person)
         {
             return person.getNumberOfJunkMailItemsReceivedPerMonth;
         }
     }, new ShortArrayList());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>shortFunction</code> - a <a href="../api/block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive"><code>ShortFunction</code></a> to use as the collect transformation function</dd>
<dd><code>target</code> - the MutableShortCollection to append to for all elements in this <code>RichIterable</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which contains appended elements as a result of the collect transformation</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectShort(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.collection.primitive.MutableShortCollection)">
<!--   -->
</a><a id="flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">flatCollectShort</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <a href="../api/collection/primitive/MutableShortCollection.html" title="interface in org.eclipse.collections.api.collection.primitive">MutableShortCollection</a>&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">flatCollectShort</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends <a href="../api/ShortIterable.html" title="interface in org.eclipse.collections.api">ShortIterable</a>&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as flatCollect, only the results are collected into the target collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">flatCollectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dd><code>target</code> - The collection into which results should be added.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>target</code>, which will contain a flattened collection of results produced by applying the given <code>function</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.flatCollect(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">flatCollect</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/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="../api/RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>. With <code>collect</code>, when the <a href="../api/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="../api/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="../api/RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../api/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="collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectIf</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/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="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detect(org.eclipse.collections.api.block.predicate.Predicate)">detect</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">detect</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#detect(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true or null in the case where no
 element returns true. This method is commonly called find.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 Person person =
     people.detect(person -&gt; person.getFirstName().equals("John") &amp;&amp; person.getLastName().equals("Smith"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Person person =
     people.detect(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.getFirstName().equals("John") &amp;&amp; person.getLastName().equals("Smith");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detect(org.eclipse.collections.api.block.predicate.Predicate)">detect</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">detectWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns the first element that evaluates to true for the specified predicate2 and parameter, or null if none
 evaluate to true.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 Person person =
     people.detectWith((person, fullName) -&gt; person.getFullName().equals(fullName), "John Smith");
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Person person =
     people.detectWith(new Predicate2&lt;Person, String&gt;()
     {
         public boolean accept(Person person, String fullName)
         {
             return person.getFullName().equals(fullName);
         }
     }, "John Smith");
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">detectOptional</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">detectOptional</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true as an Optional. This method is commonly called find.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 Person person =
     people.detectOptional(person -&gt; person.getFirstName().equals("John") &amp;&amp; person.getLastName().equals("Smith"));
 </pre>
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">detectOptional</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWithOptional</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util" class="externalLink">Optional</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">detectWithOptional</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns the first element that evaluates to true for the specified predicate2 and parameter as an Optional.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 Optional&lt;Person&gt; person =
     people.detectWithOptional((person, fullName) -&gt; person.getFullName().equals(fullName), "John Smith");
 </pre>
 <p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWithOptional</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">detectIfNone</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">detectIfNone</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">RichIterable</a></code></span></div>
<div class="block">Returns the first element of the iterable for which the predicate evaluates to true. If no element matches
 the predicate, then returns the value of applying the specified function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">detectIfNone</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object,org.eclipse.collections.api.block.function.Function0)">
<!--   -->
</a><a id="detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">detectWithIfNone</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">detectWithIfNone</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">RichIterable</a></code></span></div>
<div class="block">Returns the first element of the iterable that evaluates to true for the specified predicate2 and parameter, or
 returns the value of evaluating the specified function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">detectWithIfNone</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="min(java.util.Comparator)">min</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">min</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#min(java.util.Comparator)">RichIterable</a></code></span></div>
<div class="block">Returns the minimum element out of this container based on the comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#min(java.util.Comparator)">min</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="max(java.util.Comparator)">max</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">max</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#max(java.util.Comparator)">RichIterable</a></code></span></div>
<div class="block">Returns the maximum element out of this container based on the comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#max(java.util.Comparator)">max</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="min()">min</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">min</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#min()">RichIterable</a></code></span></div>
<div class="block">Returns the minimum element out of this container based on the natural order.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#min()">min</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="max()">max</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">max</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#max()">RichIterable</a></code></span></div>
<div class="block">Returns the maximum element out of this container based on the natural order.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#max()">max</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="minBy(org.eclipse.collections.api.block.function.Function)">minBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">minBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#minBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns the minimum elements out of this container based on the natural order of the attribute returned by Function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#minBy(org.eclipse.collections.api.block.function.Function)">minBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="maxBy(org.eclipse.collections.api.block.function.Function)">maxBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;</span>&nbsp;<span class="returnType"><a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a></span>&nbsp;<span class="memberName">maxBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#maxBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns the maximum elements out of this container based on the natural order of the attribute returned by Function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#maxBy(org.eclipse.collections.api.block.function.Function)">maxBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="count(org.eclipse.collections.api.block.predicate.Predicate)">count</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">count</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#count(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Return the total number of elements that answer true to the specified predicate.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 int count =
     people.<b>count</b>(person -&gt; person.getAddress().getState().getName().equals("New York"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 int count =
     people.<b>count</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="../api/RichIterable.html#count(org.eclipse.collections.api.block.predicate.Predicate)">count</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="countWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">countWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">countWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns the total number of elements that evaluate to true for the specified predicate.

 <pre>e.g.
 return lastNames.<b>countWith</b>(Predicates2.equal(), "Smith");
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">countWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">anySatisfy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">anySatisfy</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to true for any element of the iterable.
 Returns false if the iterable is empty, or if no element returned true when evaluating the predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">anySatisfy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">anySatisfyWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">anySatisfyWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to true for any element of the collection, or return false.
 Returns false if the collection is empty.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">anySatisfyWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">allSatisfy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">allSatisfy</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to true for every element of the iterable or if the iterable is empty.
 Otherwise, returns false.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">allSatisfy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">allSatisfyWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">allSatisfyWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to true for every element of the collection, or returns false.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">allSatisfyWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">noneSatisfy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">noneSatisfy</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to false for every element of the iterable or if the iterable is empty.
 Otherwise, returns false.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">noneSatisfy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">noneSatisfyWith</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType">boolean</span>&nbsp;<span class="memberName">noneSatisfyWith</span>&#8203;(<span class="arguments"><a href="../api/block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Returns true if the predicate evaluates to false for every element of the collection, or return false.
 Returns true if the collection is empty.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">noneSatisfyWith</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="injectInto(java.lang.Object,org.eclipse.collections.api.block.function.Function2)">
<!--   -->
</a><a id="injectInto(IV,org.eclipse.collections.api.block.function.Function2)">injectInto</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;IV&gt;</span>&nbsp;<span class="returnType">IV</span>&nbsp;<span class="memberName">injectInto</span>&#8203;(<span class="arguments">IV&nbsp;injectedValue,
<a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super IV,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends IV&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#injectInto(IV,org.eclipse.collections.api.block.function.Function2)">RichIterable</a></code></span></div>
<div class="block">Returns the final result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current
 item in the iterable is used as the second parameter. This method is commonly called fold or sometimes reduce.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#injectInto(IV,org.eclipse.collections.api.block.function.Function2)">injectInto</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">injectInto</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">int</span>&nbsp;<span class="memberName">injectInto</span>&#8203;(<span class="arguments">int&nbsp;injectedValue,
<a href="../api/block/function/primitive/IntObjectToIntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntObjectToIntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final int result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current
 item in the iterable is used as the second parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">injectInto</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">injectInto</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">long</span>&nbsp;<span class="memberName">injectInto</span>&#8203;(<span class="arguments">long&nbsp;injectedValue,
<a href="../api/block/function/primitive/LongObjectToLongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongObjectToLongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final long result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current
 item in the iterable is used as the second parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">injectInto</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">injectInto</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">double</span>&nbsp;<span class="memberName">injectInto</span>&#8203;(<span class="arguments">double&nbsp;injectedValue,
<a href="../api/block/function/primitive/DoubleObjectToDoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleObjectToDoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final double result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current
 item in the iterable is used as the second parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">injectInto</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">injectInto</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">float</span>&nbsp;<span class="memberName">injectInto</span>&#8203;(<span class="arguments">float&nbsp;injectedValue,
<a href="../api/block/function/primitive/FloatObjectToFloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatObjectToFloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final float result of evaluating function using each element of the iterable and the previous evaluation
 result as the parameters. The injected value is used for the first parameter of the first evaluation, and the current
 item in the iterable is used as the second parameter.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">injectInto</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">sumOfInt</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">long</span>&nbsp;<span class="memberName">sumOfInt</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final long result of evaluating function for each element of the iterable and adding the results
 together.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">sumOfInt</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumOfFloat</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">double</span>&nbsp;<span class="memberName">sumOfFloat</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final double result of evaluating function for each element of the iterable and adding the results
 together. It uses Kahan summation algorithm to reduce numerical error.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumOfFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">sumOfLong</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">long</span>&nbsp;<span class="memberName">sumOfLong</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final long result of evaluating function for each element of the iterable and adding the results
 together.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">sumOfLong</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumOfDouble</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">double</span>&nbsp;<span class="memberName">sumOfDouble</span>&#8203;(<span class="arguments"><a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">RichIterable</a></code></span></div>
<div class="block">Returns the final double result of evaluating function for each element of the iterable and adding the results
 together. It uses Kahan summation algorithm to reduce numerical error.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumOfDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">sumByInt</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/primitive/ObjectLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectLongMap</a>&lt;V&gt;</span>&nbsp;<span class="memberName">sumByInt</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">RichIterable</a></code></span></div>
<div class="block">Groups and sums the values using the two specified functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">sumByInt</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumByFloat</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/primitive/ObjectDoubleMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectDoubleMap</a>&lt;V&gt;</span>&nbsp;<span class="memberName">sumByFloat</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">RichIterable</a></code></span></div>
<div class="block">Groups and sums the values using the two specified functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumByFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">sumByLong</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/primitive/ObjectLongMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectLongMap</a>&lt;V&gt;</span>&nbsp;<span class="memberName">sumByLong</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">RichIterable</a></code></span></div>
<div class="block">Groups and sums the values using the two specified functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">sumByLong</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumByDouble</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/primitive/ObjectDoubleMap.html" title="interface in org.eclipse.collections.api.map.primitive">ObjectDoubleMap</a>&lt;V&gt;</span>&nbsp;<span class="memberName">sumByDouble</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;groupBy,
<a href="../api/block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">RichIterable</a></code></span></div>
<div class="block">Groups and sums the values using the two specified functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumByDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="into(java.util.Collection)">
<!--   -->
</a><a id="into(R)">into</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <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">Collection</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">into</span>&#8203;(<span class="arguments">R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#into(R)">RichIterable</a></code></span></div>
<div class="block">Adds all the elements in this iterable to the specific target Collection.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#into(R)">into</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toList()">toList</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toList</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toList()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableList implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toList()">toList</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedList()">toSortedList</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedList</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedList()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableList implementation and sorts it using the natural order of the elements.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedList()">toSortedList</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedList(java.util.Comparator)">toSortedList</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedList</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedList(java.util.Comparator)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableList implementation and sorts it using the specified comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedList(java.util.Comparator)">toSortedList</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedListBy(org.eclipse.collections.api.block.function.Function)">toSortedListBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;</span>
<span class="returnType"><a href="../api/list/MutableList.html" title="interface in org.eclipse.collections.api.list">MutableList</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedListBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedListBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableList implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedListBy(org.eclipse.collections.api.block.function.Function)">toSortedListBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedSet()">toSortedSet</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedSet</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedSet()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it using the natural order of the
 elements.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedSet()">toSortedSet</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedSet(java.util.Comparator)">toSortedSet</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedSet</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedSet(java.util.Comparator)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it using the specified comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedSet(java.util.Comparator)">toSortedSet</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedSetBy(org.eclipse.collections.api.block.function.Function)">toSortedSetBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;</span>
<span class="returnType"><a href="../api/set/sorted/MutableSortedSet.html" title="interface in org.eclipse.collections.api.set.sorted">MutableSortedSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedSetBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedSetBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedSet implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedSetBy(org.eclipse.collections.api.block.function.Function)">toSortedSetBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSet()">toSet</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/set/MutableSet.html" title="interface in org.eclipse.collections.api.set">MutableSet</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSet</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSet()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSet implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSet()">toSet</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toBag()">toBag</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/bag/MutableBag.html" title="interface in org.eclipse.collections.api.bag">MutableBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toBag</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toBag()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to the default MutableBag implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toBag()">toBag</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedBag()">toSortedBag</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedBag</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedBag()">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedBag implementation and sorts it using the natural order of the
 elements.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedBag()">toSortedBag</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedBag(java.util.Comparator)">toSortedBag</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedBag</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;comparator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedBag(java.util.Comparator)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to the MutableSortedBag implementation and sorts it using the specified comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedBag(java.util.Comparator)">toSortedBag</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedBagBy(org.eclipse.collections.api.block.function.Function)">toSortedBagBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super V&gt;&gt;</span>
<span class="returnType"><a href="../api/bag/sorted/MutableSortedBag.html" title="interface in org.eclipse.collections.api.bag.sorted">MutableSortedBag</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toSortedBagBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedBagBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedBag implementation and sorts it based on the natural order of the
 attribute returned by <code>function</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedBagBy(org.eclipse.collections.api.block.function.Function)">toSortedBagBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toMap</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;NK,&#8203;
NV&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/MutableMap.html" title="interface in org.eclipse.collections.api.map">MutableMap</a>&lt;NK,&#8203;NV&gt;</span>&nbsp;<span class="memberName">toMap</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableMap implementation using the specified key and value functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toMap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,java.util.Map)">
<!--   -->
</a><a id="toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">toMap</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;NK,&#8203;
NV,&#8203;
R extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util" class="externalLink">Map</a>&lt;NK,&#8203;
NV&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">toMap</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)"><code>RichIterable.toMap(Function, Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 map.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">toMap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;NK,&#8203;
NV&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</span>&nbsp;<span class="memberName">toSortedMap</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 sorted by the key elements' natural ordering.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;NK,&#8203;
NV&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</span>&nbsp;<span class="memberName">toSortedMap</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util" class="externalLink">Comparator</a>&lt;? super NK&gt;&nbsp;comparator,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 sorted by the given comparator.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toSortedMapBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMapBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;KK extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Comparable</a>&lt;? super KK&gt;,&#8203;
NK,&#8203;
NV&gt;</span>
<span class="returnType"><a href="../api/map/sorted/MutableSortedMap.html" title="interface in org.eclipse.collections.api.map.sorted">MutableSortedMap</a>&lt;NK,&#8203;NV&gt;</span>&nbsp;<span class="memberName">toSortedMapBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super NK,&#8203;KK&gt;&nbsp;sortBy,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toSortedMapBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a MutableSortedMap implementation using the specified key and value functions
 and sorts it based on the natural order of the attribute returned by <code>sortBy</code> function.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/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></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toBiMap</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;NK,&#8203;
NV&gt;</span>&nbsp;<span class="returnType"><a href="../api/bimap/MutableBiMap.html" title="interface in org.eclipse.collections.api.bimap">MutableBiMap</a>&lt;NK,&#8203;NV&gt;</span>&nbsp;<span class="memberName">toBiMap</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NK&gt;&nbsp;keyFunction,
<a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends NV&gt;&nbsp;valueFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Converts the collection to a BiMap implementation using the specified key and value functions.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toBiMap</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="asLazy()">asLazy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/LazyIterable.html" title="interface in org.eclipse.collections.api">LazyIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">asLazy</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#asLazy()">RichIterable</a></code></span></div>
<div class="block">Returns a lazy (deferred) iterable, most likely implemented by calling LazyIterate.adapt(this).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#asLazy()">asLazy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="iterator()">iterator</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util" class="externalLink">Iterator</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">iterator</span>()</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><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>&nbsp;in interface&nbsp;<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;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toString()">toString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">toString</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#toString()">RichIterable</a></code></span></div>
<div class="block">Returns a string with the elements of this iterable separated by commas with spaces and
 enclosed in square brackets.

 <pre>
 Assert.assertEquals("[]", Lists.mutable.empty().toString());
 Assert.assertEquals("[1]", Lists.mutable.with(1).toString());
 Assert.assertEquals("[1, 2, 3]", Lists.mutable.with(1, 2, 3).toString());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#toString()">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang" class="externalLink">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang" class="externalLink">Object</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string representation of this RichIterable</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/util/AbstractCollection.html?is-external=true#toString()" title="class or interface in java.util" class="externalLink"><code>AbstractCollection.toString()</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="makeString()">makeString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">makeString</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#makeString()">RichIterable</a></code></span></div>
<div class="block">Returns a string representation of this collection by delegating to <a href="../api/RichIterable.html#makeString(java.lang.String)"><code>RichIterable.makeString(String)</code></a> and defaulting
 the separator parameter to the characters <code>", "</code> (comma and space).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#makeString()">makeString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string representation of this collection.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="makeString(java.lang.String)">makeString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">makeString</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#makeString(java.lang.String)">RichIterable</a></code></span></div>
<div class="block">Returns a string representation of this collection by delegating to <a href="../api/RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)"><code>RichIterable.makeString(String, String, String)</code></a>
 and defaulting the start and end parameters to <code>""</code> (the empty String).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#makeString(java.lang.String)">makeString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string representation of this collection.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a></span>&nbsp;<span class="memberName">makeString</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;start,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;end)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)">RichIterable</a></code></span></div>
<div class="block">Returns a string representation of this collection with the elements separated by the specified
 separator and enclosed between the start and end strings.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a string representation of this collection.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="appendString(java.lang.Appendable)">appendString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">appendString</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#appendString(java.lang.Appendable)">RichIterable</a></code></span></div>
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>. Prints the string returned
 by <a href="../api/RichIterable.html#makeString()"><code>RichIterable.makeString()</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#appendString(java.lang.Appendable)">appendString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="appendString(java.lang.Appendable,java.lang.String)">appendString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">appendString</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#appendString(java.lang.Appendable,java.lang.String)">RichIterable</a></code></span></div>
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>. Prints the string returned
 by <a href="../api/RichIterable.html#makeString(java.lang.String)"><code>RichIterable.makeString(String)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#appendString(java.lang.Appendable,java.lang.String)">appendString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType">void</span>&nbsp;<span class="memberName">appendString</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Appendable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Appendable</a>&nbsp;appendable,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;start,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;separator,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang" class="externalLink">String</a>&nbsp;end)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">RichIterable</a></code></span></div>
<div class="block">Prints a string representation of this collection onto the given <code>Appendable</code>. Prints the string returned
 by <a href="../api/RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)"><code>RichIterable.makeString(String, String, String)</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/multimap/Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">groupBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.multimap.MutableMultimap)">
<!--   -->
</a><a id="groupBy(org.eclipse.collections.api.block.function.Function,R)">groupBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <a href="../api/multimap/MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">groupBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 multimap.
 <p>
 Example using a Java 8 method reference:
 <pre>
 FastListMultimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(Person::getLastName, new FastListMultimap&lt;String, Person&gt;());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 FastListMultimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getLastName();
         }
     }, new FastListMultimap&lt;String, Person&gt;());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function,R)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/multimap/Multimap.html" title="interface in org.eclipse.collections.api.multimap">Multimap</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">groupByEach</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../api/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="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,org.eclipse.collections.api.multimap.MutableMultimap)">
<!--   -->
</a><a id="groupByEach(org.eclipse.collections.api.block.function.Function,R)">groupByEach</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <a href="../api/multimap/MutableMultimap.html" title="interface in org.eclipse.collections.api.multimap">MutableMultimap</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">groupByEach</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupByEach(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 multimap.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function,R)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupByUniqueKey(org.eclipse.collections.api.block.function.Function)">groupByUniqueKey</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;V,&#8203;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</span>&nbsp;<span class="memberName">groupByUniqueKey</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#groupByUniqueKey(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 he results of these evaluations are collected
 into a new map, where the transformed value is the key. The generated keys must each be unique, or else an
 exception is thrown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)">groupByUniqueKey</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupByUniqueKey(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.map.MutableMapIterable)">
<!--   -->
</a><a id="groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">groupByUniqueKey</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;V,&#8203;
R extends <a href="../api/map/MutableMapIterable.html" title="interface in org.eclipse.collections.api.map">MutableMapIterable</a>&lt;V,&#8203;
<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">groupByUniqueKey</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;function,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupByUniqueKey(Function)</code></a>, except that the results are gathered into the specified <code>target</code>
 map.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">groupByUniqueKey</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../api/RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupByUniqueKey(Function)</code></a></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="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="zip(java.lang.Iterable,java.util.Collection)">
<!--   -->
</a><a id="zip(java.lang.Iterable,R)">zip</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;S,&#8203;
R extends <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">Collection</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;
S&gt;&gt;&gt;</span>&nbsp;<span class="returnType">R</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,
R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#zip(java.lang.Iterable,R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#zip(java.lang.Iterable)"><code>RichIterable.zip(Iterable)</code></a> but uses <code>target</code> for output.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#zip(java.lang.Iterable,R)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="zipWithIndex()">zipWithIndex</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/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="../api/RichIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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="../api/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="zipWithIndex(java.util.Collection)">
<!--   -->
</a><a id="zipWithIndex(R)">zipWithIndex</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;R extends <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">Collection</a>&lt;<a href="../api/tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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;&gt;</span>&nbsp;<span class="returnType">R</span>&nbsp;<span class="memberName">zipWithIndex</span>&#8203;(<span class="arguments">R&nbsp;target)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#zipWithIndex(R)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../api/RichIterable.html#zipWithIndex()"><code>RichIterable.zipWithIndex()</code></a> but uses <code>target</code> for output.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#zipWithIndex(R)">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="chunk(int)">chunk</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="returnType"><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&gt;</span>&nbsp;<span class="memberName">chunk</span>&#8203;(<span class="arguments">int&nbsp;size)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#chunk(int)">RichIterable</a></code></span></div>
<div class="block">Partitions elements in fixed size chunks.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.html#chunk(int)">chunk</a></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>size</code> - the number of elements per chunk</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A <code>RichIterable</code> containing <code>RichIterable</code>s of size <code>size</code>, except the last will be
 truncated if the elements don't divide evenly.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="aggregateInPlaceBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.procedure.Procedure2)">aggregateInPlaceBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;K,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;K,&#8203;V&gt;</span>&nbsp;<span class="memberName">aggregateInPlaceBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends K&gt;&nbsp;groupBy,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends V&gt;&nbsp;zeroValueFactory,
<a href="../api/block/procedure/Procedure2.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure2</a>&lt;? super V,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;&nbsp;mutatingAggregator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#aggregateInPlaceBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.procedure.Procedure2)">RichIterable</a></code></span></div>
<div class="block">Applies an aggregate procedure over the iterable grouping results into a Map based on the specific groupBy function.
 Aggregate results are required to be mutable as they will be changed in place by the procedure. A second function
 specifies the initial "zero" aggregate value to work with (i.e. new AtomicInteger(0)).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.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></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2)">aggregateBy</a></h3>
<div class="memberSignature"><span class="modifiers">public</span>&nbsp;<span class="typeParameters">&lt;K,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="../api/map/MapIterable.html" title="interface in org.eclipse.collections.api.map">MapIterable</a>&lt;K,&#8203;V&gt;</span>&nbsp;<span class="memberName">aggregateBy</span>&#8203;(<span class="arguments"><a href="../api/block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends K&gt;&nbsp;groupBy,
<a href="../api/block/function/Function0.html" title="interface in org.eclipse.collections.api.block.function">Function0</a>&lt;? extends V&gt;&nbsp;zeroValueFactory,
<a href="../api/block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super V,&#8203;? super <a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">T</a>,&#8203;? extends V&gt;&nbsp;nonMutatingAggregator)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../api/RichIterable.html#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2)">RichIterable</a></code></span></div>
<div class="block">Applies an aggregate function over the iterable grouping results into a map based on the specific groupBy function.
 Aggregate results are allowed to be immutable as they will be replaced in place in the map. A second function
 specifies the initial "zero" aggregate value to work with (i.e. Integer.valueOf(0)).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../api/RichIterable.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></code>&nbsp;in interface&nbsp;<code><a href="../api/RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="UnmodifiableRichIterable.html" title="type parameter in UnmodifiableRichIterable">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/UnmodifiableRichIterable.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>
