<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (14.0.2) on Sat Aug 08 22:45:01 CDT 2020 -->
<title>StackIterable (Eclipse Collections - 10.3.0)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2020-08-08">
<meta name="description" content="declaration: package: org.eclipse.collections.api.stack, interface: StackIterable">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../script-dir/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../script-dir/jquery-3.4.1.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.js"></script>
</head>
<body class="class-declaration">
<script type="text/javascript">var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":18,"i12":6,"i13":6,"i14":6,"i15":6,"i16":18,"i17":18,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6,"i31":6,"i32":6,"i33":6,"i34":6,"i35":6,"i36":18,"i37":6,"i38":6,"i39":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flexBox">
<header role="banner" class="flexHeader">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/StackIterable.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<div class="navListSearch"><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="skipNav"><a id="skip.navbar.top">
<!--   -->
</a></div>
</nav>
</header>
<div class="flexContent">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.collections.api.stack</a></div>
<h1 title="Interface StackIterable" class="title">Interface StackIterable&lt;T&gt;</h1>
</div>
<div class="contentContainer">
<section class="description">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="../InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a>&lt;T&gt;</code>, <code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;T&gt;</code>, <code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;T&gt;</code>, <code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;T&gt;</code></dd>
</dl>
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><code><a href="ImmutableStack.html" title="interface in org.eclipse.collections.api.stack">ImmutableStack</a>&lt;T&gt;</code>, <code><a href="MutableStack.html" title="interface in org.eclipse.collections.api.stack">MutableStack</a>&lt;T&gt;</code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="../../impl/stack/mutable/ArrayStack.html" title="class in org.eclipse.collections.impl.stack.mutable">ArrayStack</a></code>, <code><a href="../../impl/stack/mutable/SynchronizedStack.html" title="class in org.eclipse.collections.impl.stack.mutable">SynchronizedStack</a></code>, <code><a href="../../impl/stack/mutable/UnmodifiableStack.html" title="class in org.eclipse.collections.impl.stack.mutable">UnmodifiableStack</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">StackIterable&lt;T&gt;</span>
extends <a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;T&gt;</pre>
<div class="block">StackIterable is a last-in-first-out data structure. All iteration methods iterate from the "top" of the stack to the
 "bottom". In other words, it processes the most recently added elements first.
 <p>
 For example:
 <p>
 <a href="../RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.forEach(Procedure)</code></a> iterates over every element, starting with the most recently added
 <p>
 <a href="#getFirst()"><code>getFirst()</code></a> returns the most recently added element, not the element that was added first
 <p>
 <a href="#toString()"><code>toString()</code></a> follows the same rules as <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> except it processes the elements
 in the same order as <code>forEach()</code>.</div>
</section>
<section class="summary">
<ul class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<li class="blockList">
<section class="methodSummary"><a id="method.summary">
<!--   -->
</a>
<h2>Method Summary</h2>
<div class="memberSummary">
<div role="tablist" aria-orientation="horizontal"><button role="tab" aria-selected="true" aria-controls="memberSummary_tabpanel" tabindex="0" onkeydown="switchTab(event)" id="t0" class="activeTableTab">All Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t2" class="tableTab" onclick="show(2);">Instance Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t3" class="tableTab" onclick="show(4);">Abstract Methods</button><button role="tab" aria-selected="false" aria-controls="memberSummary_tabpanel" tabindex="-1" onkeydown="switchTab(event)" id="t5" class="tableTab" onclick="show(16);">Default Methods</button></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;V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collect(org.eclipse.collections.api.block.function.Function)">collect</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i1">
<td class="colFirst"><code><a href="primitive/BooleanStack.html" title="interface in org.eclipse.collections.api.stack.primitive">BooleanStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></span>&#8203;(<a href="../block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i2">
<td class="colFirst"><code><a href="primitive/ByteStack.html" title="interface in org.eclipse.collections.api.stack.primitive">ByteStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></span>&#8203;(<a href="../block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i3">
<td class="colFirst"><code><a href="primitive/CharStack.html" title="interface in org.eclipse.collections.api.stack.primitive">CharStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></span>&#8203;(<a href="../block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i4">
<td class="colFirst"><code><a href="primitive/DoubleStack.html" title="interface in org.eclipse.collections.api.stack.primitive">DoubleStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></span>&#8203;(<a href="../block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i5">
<td class="colFirst"><code><a href="primitive/FloatStack.html" title="interface in org.eclipse.collections.api.stack.primitive">FloatStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></span>&#8203;(<a href="../block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i6">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate,
<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i7">
<td class="colFirst"><code><a href="primitive/IntStack.html" title="interface in org.eclipse.collections.api.stack.primitive">IntStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></span>&#8203;(<a href="../block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i8">
<td class="colFirst"><code><a href="primitive/LongStack.html" title="interface in org.eclipse.collections.api.stack.primitive">LongStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></span>&#8203;(<a href="../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i9">
<td class="colFirst"><code><a href="primitive/ShortStack.html" title="interface in org.eclipse.collections.api.stack.primitive">ShortStack</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></span>&#8203;(<a href="../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i10">
<td class="colFirst"><code>&lt;P,&#8203;
V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></span>&#8203;(<a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Same as <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a> with a <code>Function2</code> and specified parameter which is passed to the block.</div>
</td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>default &lt;V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#collectWithIndex(org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction)">collectWithIndex</a></span>&#8203;(<a href="../block/function/primitive/ObjectIntToObjectFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ObjectIntToObjectFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Returns a new OrderedIterable using results obtained by applying the specified function to each element
 and its corresponding index.</div>
</td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#distinct()">distinct</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns a new <code>OrderedIterable</code> containing the distinct elements in this iterable.</div>
</td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#dropWhile(org.eclipse.collections.api.block.predicate.Predicate)">dropWhile</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns the final elements that do not satisfy the Predicate.</div>
</td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#equals(java.lang.Object)">equals</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;o)</code></th>
<td class="colLast">
<div class="block">Follows the same general contract as <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink"><code>List.equals(Object)</code></a>, but for Stacks.</div>
</td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block"><code>flatCollect</code> is a special case of <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>default &lt;P,&#8203;
V&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></span>&#8203;(<a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function,
P&nbsp;parameter)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code>default <a href="StackIterable.html" title="type parameter in StackIterable">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">Should return the same value as peek().</div>
</td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code><a href="StackIterable.html" title="type parameter in StackIterable">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">Should not work as it violates the contract of a Stack.</div>
</td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../multimap/list/ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;V,&#8203;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i20">
<td class="colFirst"><code>&lt;V&gt;&nbsp;<a href="../multimap/list/ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;V,&#8203;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></span>&#8203;(<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except the result of evaluating function will return a collection of keys
 for each value.</div>
</td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#hashCode()">hashCode</a></span>()</code></th>
<td class="colLast">
<div class="block">Follows the same general contract as <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink"><code>List.hashCode()</code></a>, but for Stacks.</div>
</td>
</tr>
<tr class="altColor" id="i22">
<td class="colFirst"><code><a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Filters a collection into a PartitionedIterable based on the evaluation of the predicate.</div>
</td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code><a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partitionWhile(org.eclipse.collections.api.block.predicate.Predicate)">partitionWhile</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns a Partition of the initial elements that satisfy the Predicate and the remaining elements.</div>
</td>
</tr>
<tr class="altColor" id="i24">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="rowColor" id="i25">
<td class="colFirst"><code><a href="StackIterable.html" title="type parameter in StackIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek()">peek</a></span>()</code></th>
<td class="colLast">
<div class="block">Returns the element at the top of the stack, without removing it from the stack.</div>
</td>
</tr>
<tr class="altColor" id="i26">
<td class="colFirst"><code><a href="../list/ListIterable.html" title="interface in org.eclipse.collections.api.list">ListIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peek(int)">peek</a></span>&#8203;(int&nbsp;count)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor" id="i27">
<td class="colFirst"><code><a href="StackIterable.html" title="type parameter in StackIterable">T</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#peekAt(int)">peekAt</a></span>&#8203;(int&nbsp;index)</code></th>
<td class="colLast">
<div class="block">Returns the element at a specific index, without removing it from the stack.</div>
</td>
</tr>
<tr class="altColor" id="i28">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i29">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.reject(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="altColor" id="i30">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i31">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</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="altColor" id="i32">
<td class="colFirst"><code>&lt;P&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></span>&#8203;(<a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</code></th>
<td class="colLast">
<div class="block">Similar to <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.</div>
</td>
</tr>
<tr class="rowColor" id="i33">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#takeWhile(org.eclipse.collections.api.block.predicate.Predicate)">takeWhile</a></span>&#8203;(<a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</code></th>
<td class="colLast">
<div class="block">Returns the initial elements that satisfy the Predicate.</div>
</td>
</tr>
<tr class="altColor" id="i34">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></span>&#8203;(<a href="../block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">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="i35">
<td class="colFirst"><code><a href="ImmutableStack.html" title="interface in org.eclipse.collections.api.stack">ImmutableStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toImmutable()">toImmutable</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the StackIterable to an immutable implementation.</div>
</td>
</tr>
<tr class="altColor" id="i36">
<td class="colFirst"><code>default <a href="MutableStack.html" title="interface in org.eclipse.collections.api.stack">MutableStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#toStack()">toStack</a></span>()</code></th>
<td class="colLast">
<div class="block">Converts the stack to a MutableStack implementation.</div>
</td>
</tr>
<tr class="rowColor" id="i37">
<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">Follows the same rules as <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> except it processes the elements
 in the same order as <code>forEach()</code>.</div>
</td>
</tr>
<tr class="altColor" id="i38">
<td class="colFirst"><code>&lt;S&gt;&nbsp;<a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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>OrderedIterable</code> formed from this <code>OrderedIterable</code> and another <code>Iterable</code> by
 combining corresponding elements in pairs.</div>
</td>
</tr>
<tr class="rowColor" id="i39">
<td class="colFirst"><code><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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>
</tbody>
</table>
</div>
</div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../InternalIterable.html" title="interface in org.eclipse.collections.api">InternalIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.InternalIterable">
<!--   -->
</a><code><a href="../InternalIterable.html#forEach(java.util.function.Consumer)">forEach</a>, <a href="../InternalIterable.html#forEachWith(org.eclipse.collections.api.block.procedure.Procedure2,P)">forEachWith</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a></h3>
<a id="methods.inherited.from.class.java.lang.Iterable">
<!--   -->
</a><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator()" title="class or interface in java.lang" class="externalLink">iterator</a>, <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.ordered.<a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.ordered.OrderedIterable">
<!--   -->
</a><code><a href="../ordered/OrderedIterable.html#collectWithIndex(org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction,R)">collectWithIndex</a>, <a href="../ordered/OrderedIterable.html#corresponds(org.eclipse.collections.api.ordered.OrderedIterable,org.eclipse.collections.api.block.predicate.Predicate2)">corresponds</a>, <a href="../ordered/OrderedIterable.html#detectIndex(org.eclipse.collections.api.block.predicate.Predicate)">detectIndex</a>, <a href="../ordered/OrderedIterable.html#forEach(int,int,org.eclipse.collections.api.block.procedure.Procedure)">forEach</a>, <a href="../ordered/OrderedIterable.html#forEachWithIndex(int,int,org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a>, <a href="../ordered/OrderedIterable.html#forEachWithIndex(org.eclipse.collections.api.block.procedure.primitive.ObjectIntProcedure)">forEachWithIndex</a>, <a href="../ordered/OrderedIterable.html#getFirstOptional()">getFirstOptional</a>, <a href="../ordered/OrderedIterable.html#getLastOptional()">getLastOptional</a>, <a href="../ordered/OrderedIterable.html#indexOf(java.lang.Object)">indexOf</a>, <a href="../ordered/OrderedIterable.html#max()">max</a>, <a href="../ordered/OrderedIterable.html#min()">min</a>, <a href="../ordered/OrderedIterable.html#zip(java.lang.Iterable,R)">zip</a>, <a href="../ordered/OrderedIterable.html#zipWithIndex(R)">zipWithIndex</a></code></div>
<div class="inheritedList">
<h3>Methods inherited from interface&nbsp;org.eclipse.collections.api.<a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a></h3>
<a id="methods.inherited.from.class.org.eclipse.collections.api.RichIterable">
<!--   -->
</a><code><a href="../RichIterable.html#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2)">aggregateBy</a>, <a href="../RichIterable.html#aggregateBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.function.Function2,R)">aggregateBy</a>, <a href="../RichIterable.html#aggregateInPlaceBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function0,org.eclipse.collections.api.block.procedure.Procedure2)">aggregateInPlaceBy</a>, <a href="../RichIterable.html#allSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">allSatisfy</a>, <a href="../RichIterable.html#allSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">allSatisfyWith</a>, <a href="../RichIterable.html#anySatisfy(org.eclipse.collections.api.block.predicate.Predicate)">anySatisfy</a>, <a href="../RichIterable.html#anySatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">anySatisfyWith</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable)">appendString</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable,java.lang.String)">appendString</a>, <a href="../RichIterable.html#appendString(java.lang.Appendable,java.lang.String,java.lang.String,java.lang.String)">appendString</a>, <a href="../RichIterable.html#asLazy()">asLazy</a>, <a href="../RichIterable.html#chunk(int)">chunk</a>, <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function,R)">collect</a>, <a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction,R)">collectBoolean</a>, <a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction,R)">collectByte</a>, <a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction,R)">collectChar</a>, <a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction,R)">collectDouble</a>, <a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction,R)">collectFloat</a>, <a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function,R)">collectIf</a>, <a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction,R)">collectInt</a>, <a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction,R)">collectLong</a>, <a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction,R)">collectShort</a>, <a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P,R)">collectWith</a>, <a href="../RichIterable.html#contains(java.lang.Object)">contains</a>, <a href="../RichIterable.html#containsAll(java.util.Collection)">containsAll</a>, <a href="../RichIterable.html#containsAllArguments(java.lang.Object...)">containsAllArguments</a>, <a href="../RichIterable.html#containsAllIterable(java.lang.Iterable)">containsAllIterable</a>, <a href="../RichIterable.html#containsBy(org.eclipse.collections.api.block.function.Function,V)">containsBy</a>, <a href="../RichIterable.html#count(org.eclipse.collections.api.block.predicate.Predicate)">count</a>, <a href="../RichIterable.html#countBy(org.eclipse.collections.api.block.function.Function)">countBy</a>, <a href="../RichIterable.html#countBy(org.eclipse.collections.api.block.function.Function,R)">countBy</a>, <a href="../RichIterable.html#countByEach(org.eclipse.collections.api.block.function.Function)">countByEach</a>, <a href="../RichIterable.html#countByEach(org.eclipse.collections.api.block.function.Function,R)">countByEach</a>, <a href="../RichIterable.html#countByWith(org.eclipse.collections.api.block.function.Function2,P)">countByWith</a>, <a href="../RichIterable.html#countByWith(org.eclipse.collections.api.block.function.Function2,P,R)">countByWith</a>, <a href="../RichIterable.html#countWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">countWith</a>, <a href="../RichIterable.html#detect(org.eclipse.collections.api.block.predicate.Predicate)">detect</a>, <a href="../RichIterable.html#detectIfNone(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function0)">detectIfNone</a>, <a href="../RichIterable.html#detectOptional(org.eclipse.collections.api.block.predicate.Predicate)">detectOptional</a>, <a href="../RichIterable.html#detectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWith</a>, <a href="../RichIterable.html#detectWithIfNone(org.eclipse.collections.api.block.predicate.Predicate2,P,org.eclipse.collections.api.block.function.Function0)">detectWithIfNone</a>, <a href="../RichIterable.html#detectWithOptional(org.eclipse.collections.api.block.predicate.Predicate2,P)">detectWithOptional</a>, <a href="../RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)">each</a>, <a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function,R)">flatCollect</a>, <a href="../RichIterable.html#flatCollectBoolean(org.eclipse.collections.api.block.function.Function,R)">flatCollectBoolean</a>, <a href="../RichIterable.html#flatCollectByte(org.eclipse.collections.api.block.function.Function,R)">flatCollectByte</a>, <a href="../RichIterable.html#flatCollectChar(org.eclipse.collections.api.block.function.Function,R)">flatCollectChar</a>, <a href="../RichIterable.html#flatCollectDouble(org.eclipse.collections.api.block.function.Function,R)">flatCollectDouble</a>, <a href="../RichIterable.html#flatCollectFloat(org.eclipse.collections.api.block.function.Function,R)">flatCollectFloat</a>, <a href="../RichIterable.html#flatCollectInt(org.eclipse.collections.api.block.function.Function,R)">flatCollectInt</a>, <a href="../RichIterable.html#flatCollectLong(org.eclipse.collections.api.block.function.Function,R)">flatCollectLong</a>, <a href="../RichIterable.html#flatCollectShort(org.eclipse.collections.api.block.function.Function,R)">flatCollectShort</a>, <a href="../RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P,R)">flatCollectWith</a>, <a href="../RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)">forEach</a>, <a href="../RichIterable.html#getAny()">getAny</a>, <a href="../RichIterable.html#getOnly()">getOnly</a>, <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function,R)">groupBy</a>, <a href="../RichIterable.html#groupByAndCollect(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">groupByAndCollect</a>, <a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function,R)">groupByEach</a>, <a href="../RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function)">groupByUniqueKey</a>, <a href="../RichIterable.html#groupByUniqueKey(org.eclipse.collections.api.block.function.Function,R)">groupByUniqueKey</a>, <a href="../RichIterable.html#injectInto(double,org.eclipse.collections.api.block.function.primitive.DoubleObjectToDoubleFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(float,org.eclipse.collections.api.block.function.primitive.FloatObjectToFloatFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(int,org.eclipse.collections.api.block.function.primitive.IntObjectToIntFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(long,org.eclipse.collections.api.block.function.primitive.LongObjectToLongFunction)">injectInto</a>, <a href="../RichIterable.html#injectInto(IV,org.eclipse.collections.api.block.function.Function2)">injectInto</a>, <a href="../RichIterable.html#into(R)">into</a>, <a href="../RichIterable.html#isEmpty()">isEmpty</a>, <a href="../RichIterable.html#makeString()">makeString</a>, <a href="../RichIterable.html#makeString(java.lang.String)">makeString</a>, <a href="../RichIterable.html#makeString(java.lang.String,java.lang.String,java.lang.String)">makeString</a>, <a href="../RichIterable.html#max(java.util.Comparator)">max</a>, <a href="../RichIterable.html#maxBy(org.eclipse.collections.api.block.function.Function)">maxBy</a>, <a href="../RichIterable.html#maxByOptional(org.eclipse.collections.api.block.function.Function)">maxByOptional</a>, <a href="../RichIterable.html#maxOptional()">maxOptional</a>, <a href="../RichIterable.html#maxOptional(java.util.Comparator)">maxOptional</a>, <a href="../RichIterable.html#min(java.util.Comparator)">min</a>, <a href="../RichIterable.html#minBy(org.eclipse.collections.api.block.function.Function)">minBy</a>, <a href="../RichIterable.html#minByOptional(org.eclipse.collections.api.block.function.Function)">minByOptional</a>, <a href="../RichIterable.html#minOptional()">minOptional</a>, <a href="../RichIterable.html#minOptional(java.util.Comparator)">minOptional</a>, <a href="../RichIterable.html#noneSatisfy(org.eclipse.collections.api.block.predicate.Predicate)">noneSatisfy</a>, <a href="../RichIterable.html#noneSatisfyWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">noneSatisfyWith</a>, <a href="../RichIterable.html#notEmpty()">notEmpty</a>, <a href="../RichIterable.html#reduce(java.util.function.BinaryOperator)">reduce</a>, <a href="../RichIterable.html#reduceInPlace(java.util.function.Supplier,java.util.function.BiConsumer)">reduceInPlace</a>, <a href="../RichIterable.html#reduceInPlace(java.util.stream.Collector)">reduceInPlace</a>, <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate,R)">reject</a>, <a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">rejectWith</a>, <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate,R)">select</a>, <a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P,R)">selectWith</a>, <a href="../RichIterable.html#size()">size</a>, <a href="../RichIterable.html#sumByDouble(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumByDouble</a>, <a href="../RichIterable.html#sumByFloat(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumByFloat</a>, <a href="../RichIterable.html#sumByInt(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.IntFunction)">sumByInt</a>, <a href="../RichIterable.html#sumByLong(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.primitive.LongFunction)">sumByLong</a>, <a href="../RichIterable.html#summarizeDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">summarizeDouble</a>, <a href="../RichIterable.html#summarizeFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">summarizeFloat</a>, <a href="../RichIterable.html#summarizeInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">summarizeInt</a>, <a href="../RichIterable.html#summarizeLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">summarizeLong</a>, <a href="../RichIterable.html#sumOfDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">sumOfDouble</a>, <a href="../RichIterable.html#sumOfFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">sumOfFloat</a>, <a href="../RichIterable.html#sumOfInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">sumOfInt</a>, <a href="../RichIterable.html#sumOfLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">sumOfLong</a>, <a href="../RichIterable.html#toArray()">toArray</a>, <a href="../RichIterable.html#toArray(E%5B%5D)">toArray</a>, <a href="../RichIterable.html#toBag()">toBag</a>, <a href="../RichIterable.html#toBiMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toBiMap</a>, <a href="../RichIterable.html#toList()">toList</a>, <a href="../RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toMap</a>, <a href="../RichIterable.html#toMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,R)">toMap</a>, <a href="../RichIterable.html#toSet()">toSet</a>, <a href="../RichIterable.html#toSortedBag()">toSortedBag</a>, <a href="../RichIterable.html#toSortedBag(java.util.Comparator)">toSortedBag</a>, <a href="../RichIterable.html#toSortedBagBy(org.eclipse.collections.api.block.function.Function)">toSortedBagBy</a>, <a href="../RichIterable.html#toSortedList()">toSortedList</a>, <a href="../RichIterable.html#toSortedList(java.util.Comparator)">toSortedList</a>, <a href="../RichIterable.html#toSortedListBy(org.eclipse.collections.api.block.function.Function)">toSortedListBy</a>, <a href="../RichIterable.html#toSortedMap(java.util.Comparator,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a>, <a href="../RichIterable.html#toSortedMap(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMap</a>, <a href="../RichIterable.html#toSortedMapBy(org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function,org.eclipse.collections.api.block.function.Function)">toSortedMapBy</a>, <a href="../RichIterable.html#toSortedSet()">toSortedSet</a>, <a href="../RichIterable.html#toSortedSet(java.util.Comparator)">toSortedSet</a>, <a href="../RichIterable.html#toSortedSetBy(org.eclipse.collections.api.block.function.Function)">toSortedSetBy</a></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="peek()">peek</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="type parameter in StackIterable">T</a></span>&nbsp;<span class="memberName">peek</span>()</div>
<div class="block">Returns the element at the top of the stack, without removing it from the stack.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the top of the stack.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="peek(int)">peek</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../list/ListIterable.html" title="interface in org.eclipse.collections.api.list">ListIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">peek</span>&#8203;(<span class="arguments">int&nbsp;count)</span></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a ListIterable of the number of elements specified by the count, beginning with the top of the stack.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="peekAt(int)">peekAt</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="type parameter in StackIterable">T</a></span>&nbsp;<span class="memberName">peekAt</span>&#8203;(<span class="arguments">int&nbsp;index)</span></div>
<div class="block">Returns the element at a specific index, without removing it from the stack.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the location to peek into</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the element at the specified index</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="getFirst()">getFirst</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="type parameter in StackIterable">T</a></span>&nbsp;<span class="memberName">getFirst</span>()</div>
<div class="block">Should return the same value as peek().</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#getFirst()">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#getFirst()">getFirst</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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="returnType"><a href="StackIterable.html" title="type parameter in StackIterable">T</a></span>&nbsp;<span class="memberName">getLast</span>()</div>
<div class="block">Should not work as it violates the contract of a Stack.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#getLast()">getLast</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#getLast()">getLast</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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="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">Follows the same rules as <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> except it processes the elements
 in the same order as <code>forEach()</code>.
 <pre>
 Assert.assertEquals("[3, 2, 1]", Stacks.mutable.with(1, 2, 3).toString());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#toString()">toString</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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="equals(java.lang.Object)">equals</a></h3>
<div class="memberSignature"><span class="returnType">boolean</span>&nbsp;<span class="memberName">equals</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;o)</span></div>
<div class="block">Follows the same general contract as <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.util" class="externalLink"><code>List.equals(Object)</code></a>, but for Stacks.</div>
<dl>
<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#equals(java.lang.Object)" title="class or interface in java.lang" class="externalLink">equals</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>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="hashCode()">hashCode</a></h3>
<div class="memberSignature"><span class="returnType">int</span>&nbsp;<span class="memberName">hashCode</span>()</div>
<div class="block">Follows the same general contract as <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true#hashCode()" title="class or interface in java.util" class="externalLink"><code>List.hashCode()</code></a>, but for Stacks.</div>
<dl>
<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#hashCode()" title="class or interface in java.lang" class="externalLink">hashCode</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>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="takeWhile(org.eclipse.collections.api.block.predicate.Predicate)">takeWhile</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">takeWhile</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ordered/OrderedIterable.html#takeWhile(org.eclipse.collections.api.block.predicate.Predicate)">OrderedIterable</a></code></span></div>
<div class="block">Returns the initial elements that satisfy the Predicate. Short circuits at the first element which does not
 satisfy the Predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#takeWhile(org.eclipse.collections.api.block.predicate.Predicate)">takeWhile</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="dropWhile(org.eclipse.collections.api.block.predicate.Predicate)">dropWhile</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">dropWhile</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ordered/OrderedIterable.html#dropWhile(org.eclipse.collections.api.block.predicate.Predicate)">OrderedIterable</a></code></span></div>
<div class="block">Returns the final elements that do not satisfy the Predicate. Short circuits at the first element which does
 satisfy the Predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#dropWhile(org.eclipse.collections.api.block.predicate.Predicate)">dropWhile</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="partitionWhile(org.eclipse.collections.api.block.predicate.Predicate)">partitionWhile</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">partitionWhile</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ordered/OrderedIterable.html#partitionWhile(org.eclipse.collections.api.block.predicate.Predicate)">OrderedIterable</a></code></span></div>
<div class="block">Returns a Partition of the initial elements that satisfy the Predicate and the remaining elements. Short circuits at the first element which does
 satisfy the Predicate.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#partitionWhile(org.eclipse.collections.api.block.predicate.Predicate)">partitionWhile</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="distinct()">distinct</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">distinct</span>()</div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ordered/OrderedIterable.html#distinct()">OrderedIterable</a></code></span></div>
<div class="block">Returns a new <code>OrderedIterable</code> containing the distinct elements in this iterable.
 <p>
 Conceptually similar to <a href="../RichIterable.html#toSet()"><code>RichIterable.toSet()</code></a>.<a href="../RichIterable.html#toList()"><code>RichIterable.toList()</code></a> but retains the original order. If an element appears
 multiple times in this iterable, the first one will be copied into the result.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#distinct()">distinct</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>OrderedIterable</code> of distinct elements</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toStack()">toStack</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="returnType"><a href="MutableStack.html" title="interface in org.eclipse.collections.api.stack">MutableStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toStack</span>()</div>
<div class="block">Converts the stack to a MutableStack implementation.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#toStack()">toStack</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">tap</span>&#8203;(<span class="arguments"><a href="../block/procedure/Procedure.html" title="interface in org.eclipse.collections.api.block.procedure">Procedure</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;procedure)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">RichIterable</a></code></span></div>
<div class="block">Executes the Procedure for each element in the iterable and returns <code>this</code>.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; tapped =
     people.<b>tap</b>(person -&gt; LOGGER.info(person.getName()));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; tapped =
     people.<b>tap</b>(new Procedure&lt;Person&gt;()
     {
         public void value(Person person)
         {
             LOGGER.info(person.getName());
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#tap(org.eclipse.collections.api.block.procedure.Procedure)">tap</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#each(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.each(Procedure)</code></a>, 
<a href="../RichIterable.html#forEach(org.eclipse.collections.api.block.procedure.Procedure)"><code>RichIterable.forEach(Procedure)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">select</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that return true when evaluating the predicate. This method is also
 commonly called filter.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.<b>select</b>(person -&gt; person.getAddress().getCity().equals("London"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.<b>select</b>(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.getAddress().getCity().equals("London");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)">select</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">selectWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.
 <p>
 E.g. return a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Collection</code></a> of Person elements where the person has an age <b>greater than or equal to</b> 18 years
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.selectWith((Person person, Integer age) -&gt; person.getAge()&gt;= age, Integer.valueOf(18));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; selected =
     people.selectWith(new Predicate2&lt;Person, Integer&gt;()
     {
         public boolean accept(Person person, Integer age)
         {
             return person.getAge()&gt;= age;
         }
     }, Integer.valueOf(18));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#selectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">selectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dd><code>parameter</code> - a parameter to pass in for evaluation of the second argument <code>P</code> in <code>predicate</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">reject</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that return false when evaluating of the predicate. This method is also
 sometimes called filterNot and is the equivalent of calling iterable.select(Predicates.not(predicate)).
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.reject(person -&gt; person.person.getLastName().equals("Smith"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.reject(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.person.getLastName().equals("Smith");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)">reject</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate</code></a> to use as the reject criteria</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a RichIterable that contains elements that cause <a href="../block/predicate/Predicate.html#accept(T)"><code>Predicate.accept(Object)</code></a> method to evaluate to false</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">rejectWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#reject(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.reject(Predicate)</code></a>, except with an evaluation parameter for the second generic argument in <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a>.
 <p>
 E.g. return a <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util" class="externalLink"><code>Collection</code></a> of Person elements where the person has an age <b>greater than or equal to</b> 18 years
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Person&gt; rejected =
     people.rejectWith((Person person, Integer age) -&gt; person.getAge() &lt; age, Integer.valueOf(18));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 MutableList&lt;Person&gt; rejected =
     people.rejectWith(new Predicate2&lt;Person, Integer&gt;()
     {
         public boolean accept(Person person, Integer age)
         {
             return person.getAge() &lt; age;
         }
     }, Integer.valueOf(18));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#rejectWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">rejectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>predicate</code> - a <a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate"><code>Predicate2</code></a> to use as the select criteria</dd>
<dd><code>parameter</code> - a parameter to pass in for evaluation of the second argument <code>P</code> in <code>predicate</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#select(org.eclipse.collections.api.block.predicate.Predicate)"><code>RichIterable.select(Predicate)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="selectInstancesOf(java.lang.Class)">selectInstancesOf</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;S&gt;</span>&nbsp;<span class="memberName">selectInstancesOf</span>&#8203;(<span class="arguments"><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang" class="externalLink">Class</a>&lt;S&gt;&nbsp;clazz)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#selectInstancesOf(java.lang.Class)">RichIterable</a></code></span></div>
<div class="block">Returns all elements of the source collection that are instances of the Class <code>clazz</code>.

 <pre>
 RichIterable&lt;Integer&gt; integers =
     List.mutable.with(new Integer(0), new Long(0L), new Double(0.0)).selectInstancesOf(Integer.class);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#selectInstancesOf(java.lang.Class)">selectInstancesOf</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></h3>
<div class="memberSignature"><span class="returnType"><a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">partition</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">RichIterable</a></code></span></div>
<div class="block">Filters a collection into a PartitionedIterable based on the evaluation of the predicate.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partition</b>(person -&gt; person.getAddress().getState().getName().equals("New York"));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partition</b>(new Predicate&lt;Person&gt;()
     {
         public boolean accept(Person person)
         {
             return person.getAddress().getState().getName().equals("New York");
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#partition(org.eclipse.collections.api.block.predicate.Predicate)">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,java.lang.Object)">
<!--   -->
</a><a id="partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P&gt;</span>&nbsp;<span class="returnType"><a href="../partition/stack/PartitionStack.html" title="interface in org.eclipse.collections.api.partition.stack">PartitionStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">partitionWith</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate2.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P&gt;&nbsp;predicate,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">RichIterable</a></code></span></div>
<div class="block">Filters a collection into a PartitionIterable based on the evaluation of the predicate.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partitionWith</b>((Person person, String state) -&gt; person.getAddress().getState().getName().equals(state), "New York");
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 PartitionIterable&lt;Person&gt; newYorkersAndNonNewYorkers =
     people.<b>partitionWith</b>(new Predicate2&lt;Person, String&gt;()
     {
         public boolean accept(Person person, String state)
         {
             return person.getAddress().getState().getName().equals(state);
         }
     }, "New York");
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#partitionWith(org.eclipse.collections.api.block.predicate.Predicate2,P)">partitionWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collect(org.eclipse.collections.api.block.function.Function)">collect</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collect</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;String&gt; names =
     people.collect(person -&gt; person.getFirstName() + " " + person.getLastName());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 RichIterable&lt;String&gt; names =
     people.collect(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getFirstName() + " " + person.getLastName();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)">collect</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/BooleanStack.html" title="interface in org.eclipse.collections.api.stack.primitive">BooleanStack</a></span>&nbsp;<span class="memberName">collectBoolean</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/BooleanFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">BooleanFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;booleanFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>boolean</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 BooleanIterable licenses =
     people.collectBoolean(person -&gt; person.hasDrivingLicense());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 BooleanIterable licenses =
     people.collectBoolean(new BooleanFunction&lt;Person&gt;()
     {
         public boolean booleanValueOf(Person person)
         {
             return person.hasDrivingLicense();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectBoolean(org.eclipse.collections.api.block.function.primitive.BooleanFunction)">collectBoolean</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ByteStack.html" title="interface in org.eclipse.collections.api.stack.primitive">ByteStack</a></span>&nbsp;<span class="memberName">collectByte</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/ByteFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ByteFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;byteFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>byte</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ByteIterable bytes =
     people.collectByte(person -&gt; person.getCode());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ByteIterable bytes =
     people.collectByte(new ByteFunction&lt;Person&gt;()
     {
         public byte byteValueOf(Person person)
         {
             return person.getCode();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectByte(org.eclipse.collections.api.block.function.primitive.ByteFunction)">collectByte</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/CharStack.html" title="interface in org.eclipse.collections.api.stack.primitive">CharStack</a></span>&nbsp;<span class="memberName">collectChar</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/CharFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">CharFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;charFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>char</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 CharIterable chars =
     people.collectChar(person -&gt; person.getMiddleInitial());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 CharIterable chars =
     people.collectChar(new CharFunction&lt;Person&gt;()
     {
         public char charValueOf(Person person)
         {
             return person.getMiddleInitial();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectChar(org.eclipse.collections.api.block.function.primitive.CharFunction)">collectChar</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/DoubleStack.html" title="interface in org.eclipse.collections.api.stack.primitive">DoubleStack</a></span>&nbsp;<span class="memberName">collectDouble</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/DoubleFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">DoubleFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;doubleFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>double</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 DoubleIterable doubles =
     people.collectDouble(person -&gt; person.getMilesFromNorthPole());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 DoubleIterable doubles =
     people.collectDouble(new DoubleFunction&lt;Person&gt;()
     {
         public double doubleValueOf(Person person)
         {
             return person.getMilesFromNorthPole();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectDouble(org.eclipse.collections.api.block.function.primitive.DoubleFunction)">collectDouble</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/FloatStack.html" title="interface in org.eclipse.collections.api.stack.primitive">FloatStack</a></span>&nbsp;<span class="memberName">collectFloat</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/FloatFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">FloatFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;floatFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>float</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 FloatIterable floats =
     people.collectFloat(person -&gt; person.getHeightInInches());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 FloatIterable floats =
     people.collectFloat(new FloatFunction&lt;Person&gt;()
     {
         public float floatValueOf(Person person)
         {
             return person.getHeightInInches();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectFloat(org.eclipse.collections.api.block.function.primitive.FloatFunction)">collectFloat</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/IntStack.html" title="interface in org.eclipse.collections.api.stack.primitive">IntStack</a></span>&nbsp;<span class="memberName">collectInt</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/IntFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">IntFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;intFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>int</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 IntIterable ints =
     people.collectInt(person -&gt; person.getAge());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 IntIterable ints =
     people.collectInt(new IntFunction&lt;Person&gt;()
     {
         public int intValueOf(Person person)
         {
             return person.getAge();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectInt(org.eclipse.collections.api.block.function.primitive.IntFunction)">collectInt</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/LongStack.html" title="interface in org.eclipse.collections.api.stack.primitive">LongStack</a></span>&nbsp;<span class="memberName">collectLong</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/LongFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">LongFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;longFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>long</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 LongIterable longs =
     people.collectLong(person -&gt; person.getGuid());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 LongIterable longs =
     people.collectLong(new LongFunction&lt;Person&gt;()
     {
         public long longValueOf(Person person)
         {
             return person.getGuid();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectLong(org.eclipse.collections.api.block.function.primitive.LongFunction)">collectLong</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></h3>
<div class="memberSignature"><span class="returnType"><a href="primitive/ShortStack.html" title="interface in org.eclipse.collections.api.stack.primitive">ShortStack</a></span>&nbsp;<span class="memberName">collectShort</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/ShortFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ShortFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;shortFunction)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">RichIterable</a></code></span></div>
<div class="block">Returns a new primitive <code>short</code> iterable with the results of applying the specified function on each element
 of the source collection. This method is also commonly called transform or map.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 ShortIterable shorts =
     people.collectShort(person -&gt; person.getNumberOfJunkMailItemsReceivedPerMonth());
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 ShortIterable shorts =
     people.collectShort(new ShortFunction&lt;Person&gt;()
     {
         public short shortValueOf(Person person)
         {
             return person.getNumberOfJunkMailItemsReceivedPerMonth();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectShort(org.eclipse.collections.api.block.function.primitive.ShortFunction)">collectShort</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectWith(org.eclipse.collections.api.block.function.Function2,java.lang.Object)">
<!--   -->
</a><a id="collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;P,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectWith</span>&#8203;(<span class="arguments"><a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P,&#8203;? extends V&gt;&nbsp;function,
P&nbsp;parameter)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">RichIterable</a></code></span></div>
<div class="block">Same as <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a> with a <code>Function2</code> and specified parameter which is passed to the block.
 <p>
 Example using a Java 8 lambda expression:
 <pre>
 RichIterable&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith((each, parameter) -&gt; each + parameter, Integer.valueOf(1));
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Function2&lt;Integer, Integer, Integer&gt; addParameterFunction =
     new Function2&lt;Integer, Integer, Integer&gt;()
     {
         public Integer value(Integer each, Integer parameter)
         {
             return each + parameter;
         }
     };
 RichIterable&lt;Integer&gt; integers =
     Lists.mutable.with(1, 2, 3).collectWith(addParameterFunction, Integer.valueOf(1));
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectWith(org.eclipse.collections.api.block.function.Function2,P)">collectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - A <a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function"><code>Function2</code></a> to use as the collect transformation function</dd>
<dd><code>parameter</code> - A parameter to pass in for evaluation of the second argument <code>P</code> in <code>function</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>RichIterable</code> that contains the transformed elements returned by <a href="../block/function/Function2.html#value(T1,T2)"><code>Function2.value(Object, Object)</code></a></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectIf</span>&#8203;(<span class="arguments"><a href="../block/predicate/Predicate.html" title="interface in org.eclipse.collections.api.block.predicate">Predicate</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;&nbsp;predicate,
<a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Returns a new collection with the results of applying the specified function on each element of the source
 collection, but only for those elements which return true upon evaluation of the predicate. This is the
 the optimized equivalent of calling iterable.select(predicate).collect(function).
 <p>
 Example using a Java 8 lambda and method reference:
 <pre>
 RichIterable&lt;String&gt; strings = Lists.mutable.with(1, 2, 3).collectIf(e -&gt; e != null, Object::toString);
 </pre>
 <p>
 Example using Predicates factory:
 <pre>
 RichIterable&lt;String&gt; strings = Lists.mutable.with(1, 2, 3).collectIf(Predicates.notNull(), Functions.getToString());
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.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="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#collectIf(org.eclipse.collections.api.block.predicate.Predicate,org.eclipse.collections.api.block.function.Function)">collectIf</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="collectWithIndex(org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction)">collectWithIndex</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">collectWithIndex</span>&#8203;(<span class="arguments"><a href="../block/function/primitive/ObjectIntToObjectFunction.html" title="interface in org.eclipse.collections.api.block.function.primitive">ObjectIntToObjectFunction</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../ordered/OrderedIterable.html#collectWithIndex(org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction)">OrderedIterable</a></code></span></div>
<div class="block">Returns a new OrderedIterable using results obtained by applying the specified function to each element
 and its corresponding index.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#collectWithIndex(org.eclipse.collections.api.block.function.primitive.ObjectIntToObjectFunction)">collectWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>9.1.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">flatCollect</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block"><code>flatCollect</code> is a special case of <a href="../RichIterable.html#collect(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.collect(Function)</code></a>. With <code>collect</code>, when the <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> returns
 a collection, the result is a collection of collections. <code>flatCollect</code> outputs a single "flattened" collection
 instead. This method is commonly called flatMap.
 <p>
 Consider the following example where we have a <code>Person</code> class, and each <code>Person</code> has a list of <code>Address</code> objects. Take the following <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a>:
 <pre>
 Function&lt;Person, List&lt;Address&gt;&gt; addressFunction = Person::getAddresses;
 RichIterable&lt;Person&gt; people = ...;
 </pre>
 Using <code>collect</code> returns a collection of collections of addresses.
 <pre>
 RichIterable&lt;List&lt;Address&gt;&gt; addresses = people.collect(addressFunction);
 </pre>
 Using <code>flatCollect</code> returns a single flattened list of addresses.
 <pre>
 RichIterable&lt;Address&gt; addresses = people.flatCollect(addressFunction);
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#flatCollect(org.eclipse.collections.api.block.function.Function)">flatCollect</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>function</code> - The <a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function"><code>Function</code></a> to apply</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new flattened collection produced by applying the given <code>function</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="flatCollectWith(org.eclipse.collections.api.block.function.Function2,java.lang.Object)">
<!--   -->
</a><a id="flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></h3>
<div class="memberSignature"><span class="modifiers">default</span>&nbsp;<span class="typeParameters">&lt;P,&#8203;
V&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;V&gt;</span>&nbsp;<span class="memberName">flatCollectWith</span>&#8203;(<span class="arguments"><a href="../block/function/Function2.html" title="interface in org.eclipse.collections.api.block.function">Function2</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? super P,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function,
P&nbsp;parameter)</span></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#flatCollectWith(org.eclipse.collections.api.block.function.Function2,P)">flatCollectWith</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>9.2</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../multimap/list/ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;V,&#8203;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">groupBy</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends V&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">For each element of the iterable, the function is evaluated and the results of these evaluations are collected
 into a new multimap, where the transformed value is the key and the original values are added to the same (or similar)
 species of collection as the source iterable.
 <p>
 Example using a Java 8 method reference:
 <pre>
 Multimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(Person::getLastName);
 </pre>
 <p>
 Example using an anonymous inner class:
 <pre>
 Multimap&lt;String, Person&gt; peopleByLastName =
     people.groupBy(new Function&lt;Person, String&gt;()
     {
         public String valueOf(Person person)
         {
             return person.getLastName();
         }
     });
 </pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)">groupBy</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;V&gt;</span>&nbsp;<span class="returnType"><a href="../multimap/list/ListMultimap.html" title="interface in org.eclipse.collections.api.multimap.list">ListMultimap</a>&lt;V,&#8203;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">groupByEach</span>&#8203;(<span class="arguments"><a href="../block/function/Function.html" title="interface in org.eclipse.collections.api.block.function">Function</a>&lt;? super <a href="StackIterable.html" title="type parameter in StackIterable">T</a>,&#8203;? extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang" class="externalLink">Iterable</a>&lt;V&gt;&gt;&nbsp;function)</span></div>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">RichIterable</a></code></span></div>
<div class="block">Similar to <a href="../RichIterable.html#groupBy(org.eclipse.collections.api.block.function.Function)"><code>RichIterable.groupBy(Function)</code></a>, except the result of evaluating function will return a collection of keys
 for each value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../ordered/OrderedIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#groupByEach(org.eclipse.collections.api.block.function.Function)">groupByEach</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="zip(java.lang.Iterable)">zip</a></h3>
<div class="memberSignature"><span class="typeParameters">&lt;S&gt;</span>&nbsp;<span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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="../ordered/OrderedIterable.html#zip(java.lang.Iterable)">OrderedIterable</a></code></span></div>
<div class="block">Returns a <code>OrderedIterable</code> formed from this <code>OrderedIterable</code> and another <code>Iterable</code> by
 combining corresponding elements in pairs. The second <code>Iterable</code> should also be ordered.
 If one of the two <code>Iterable</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="../ordered/OrderedIterable.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#zip(java.lang.Iterable)">zip</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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>Iterable</code> providing the second half of each result pair</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>OrderedIterable</code> containing pairs consisting of corresponding elements of this <code>
 OrderedIterable</code> and that. The length of the returned <code>OrderedIterable</code> is the minimum of the lengths of
 this <code>OrderedIterable</code> and that.</dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="zipWithIndex()">zipWithIndex</a></h3>
<div class="memberSignature"><span class="returnType"><a href="StackIterable.html" title="interface in org.eclipse.collections.api.stack">StackIterable</a>&lt;<a href="../tuple/Pair.html" title="interface in org.eclipse.collections.api.tuple">Pair</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">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="../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="../ordered/OrderedIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../ordered/OrderedIterable.html" title="interface in org.eclipse.collections.api.ordered">OrderedIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../RichIterable.html#zipWithIndex()">zipWithIndex</a></code>&nbsp;in interface&nbsp;<code><a href="../RichIterable.html" title="interface in org.eclipse.collections.api">RichIterable</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>A new <code>RichIterable</code> containing pairs consisting of all elements of this <code>RichIterable</code>
 paired with their index. Indices start at 0.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../RichIterable.html#zip(java.lang.Iterable)"><code>RichIterable.zip(Iterable)</code></a></dd>
</dl>
</section>
</li>
<li class="blockList">
<section class="detail">
<h3><a id="toImmutable()">toImmutable</a></h3>
<div class="memberSignature"><span class="returnType"><a href="ImmutableStack.html" title="interface in org.eclipse.collections.api.stack">ImmutableStack</a>&lt;<a href="StackIterable.html" title="type parameter in StackIterable">T</a>&gt;</span>&nbsp;<span class="memberName">toImmutable</span>()</div>
<div class="block">Converts the StackIterable to an immutable implementation. Returns this for immutable stacks.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>5.0</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/StackIterable.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>
