<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (version 1.7.0_80) on Tue Mar 13 07:00:35 EDT 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SliceIterator (The Eclipse January API Documentation)</title>
<meta name="date" content="2018-03-13">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="SliceIterator (The Eclipse January API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SliceIterator.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">
<ul class="navList">
<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceIterator.html" target="_top">Frames</a></li>
<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.january.dataset</div>
<h2 title="Class SliceIterator" class="title">Class SliceIterator</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">org.eclipse.january.dataset.IndexIterator</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.january.dataset.SliceIterator</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../org/eclipse/january/dataset/NullIterator.html" title="class in org.eclipse.january.dataset">NullIterator</a>, <a href="../../../../org/eclipse/january/dataset/StrideIterator.html" title="class in org.eclipse.january.dataset">StrideIterator</a></dd>
</dl>
<hr>
<br>
<pre>public class <a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.25">SliceIterator</a>
extends <a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></pre>
<div class="block">The <code>SliceIterator</code> class is use to run over a Slice of a Dataset.
 
 This is an Iterator thats allows the programmer to traverse the elements of a sliced Dataset and obtain the current position, the starts, steps,
 shapes.
 Moreover, there is possibilities to set the start point to begin at the wanted position.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.january.dataset.<a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></h3>
<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#index">index</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;sshape)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;sshape,
                          int&nbsp;isize)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;start,
                          int[]&nbsp;sshape)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;start,
                          int[]&nbsp;sshape,
                          int&nbsp;isize)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[])">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;start,
                          int[]&nbsp;step,
                          int[]&nbsp;sshape)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int[],%20int[],%20int[],%20int)">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int[]&nbsp;start,
                          int[]&nbsp;step,
                          int[]&nbsp;sshape,
                          int&nbsp;isize)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          int&nbsp;isize,
                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#SliceIterator(int[],%20int,%20org.eclipse.january.dataset.SliceND)">SliceIterator</a></strong>(int[]&nbsp;shape,
                          int&nbsp;length,
                          <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</code>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getPos()">getPos</a></strong>()</code>
<div class="block">Returns the current position of the iterator.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getShape()">getShape</a></strong>()</code>
<div class="block">Returns an array of the Slices shapes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStart()">getStart</a></strong>()</code>
<div class="block">Returns an array of starts indexes.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#getStep()">getStep</a></strong>()</code>
<div class="block">Returns an array of steps</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#hasNext()">hasNext</a></strong>()</code>
<div class="block">Returns <code>true</code> if there is an other element after the current
 Slice.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#reset()">reset</a></strong>()</code>
<div class="block">Reset the Iterator to the first Slice.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/eclipse/january/dataset/SliceIterator.html#setStart(int...)">setStart</a></strong>(int...&nbsp;newStart)</code>
<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
 is set by default to 0</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="SliceIterator(int[], int, int[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.52">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;sshape)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int[], int[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.69">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;start,
             int[]&nbsp;sshape)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int[], int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.86">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;sshape,
             int&nbsp;isize)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int[], int[], int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.105">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;start,
             int[]&nbsp;sshape,
             int&nbsp;isize)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int[], int[], int[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.124">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;start,
             int[]&nbsp;step,
             int[]&nbsp;sshape)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd><dd><code>sshape</code> - shape of new dataset, i.e. slice</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, org.eclipse.january.dataset.SliceND)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.139">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>slice</code> - SliceND to iterate on</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int, org.eclipse.january.dataset.SliceND)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.156">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int&nbsp;isize,
             <a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset">SliceND</a>&nbsp;slice)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>isize</code> - Number of elements in an item</dd><dd><code>slice</code> - SliceND to iterate on</dd></dl>
</li>
</ul>
<a name="SliceIterator(int[], int, int[], int[], int[], int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SliceIterator</h4>
<pre>public&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.177">SliceIterator</a>(int[]&nbsp;shape,
             int&nbsp;length,
             int[]&nbsp;start,
             int[]&nbsp;step,
             int[]&nbsp;sshape,
             int&nbsp;isize)</pre>
<div class="block">Constructs an SliceIterator Object, which can iterate over sliced
 Datasets elements, by default the start set to 0 and with a step of 1.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>shape</code> - Array of shapes of the Dataset</dd><dd><code>length</code> - Length of entire data array</dd><dd><code>start</code> - Array of starts indexes, may be <code>null</code></dd><dd><code>step</code> - Array of steps, may be <code>null</code>, but can't be 0</dd><dd><code>sshape</code> - Shape of the new dataset, i.e. slice</dd><dd><code>isize</code> - Number of elements in an item</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="setStart(int...)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStart</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.234">setStart</a>(int...&nbsp;newStart)</pre>
<div class="block">Set the starts indexes to new positions, <code>if null</code> the start index
 is set by default to 0</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>newStart</code> - Array of new starts indexes (prefix with zeros if necessary),
            may be <code>null</code></dd></dl>
</li>
</ul>
<a name="reset()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.265">reset</a>()</pre>
<div class="block">Reset the Iterator to the first Slice.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#reset()">reset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
</dl>
</li>
</ul>
<a name="hasNext()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasNext</h4>
<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.290">hasNext</a>()</pre>
<div class="block">Returns <code>true</code> if there is an other element after the current
 Slice.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#hasNext()">hasNext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>Returns  if the iteration has more Slice, <code>false</code> in
         the other case</dd></dl>
</li>
</ul>
<a name="getStart()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStart</h4>
<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.316">getStart</a>()</pre>
<div class="block">Returns an array of starts indexes.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Array of starts indexes</dd></dl>
</li>
</ul>
<a name="getPos()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPos</h4>
<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.326">getPos</a>()</pre>
<div class="block">Returns the current position of the iterator.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getPos()">getPos</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>Iterator current position</dd></dl>
</li>
</ul>
<a name="getStep()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStep</h4>
<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.335">getStep</a>()</pre>
<div class="block">Returns an array of steps</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>Array of steps</dd></dl>
</li>
</ul>
<a name="getShape()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getShape</h4>
<pre>public&nbsp;int[]&nbsp;<a href="../../../../src-html/org/eclipse/january/dataset/SliceIterator.html#line.345">getShape</a>()</pre>
<div class="block">Returns an array of the Slices shapes.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html#getShape()">getShape</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/eclipse/january/dataset/IndexIterator.html" title="class in org.eclipse.january.dataset">IndexIterator</a></code></dd>
<dt><span class="strong">Returns:</span></dt><dd>Array of shapes.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SliceIterator.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">
<ul class="navList">
<li><a href="../../../../org/eclipse/january/dataset/Slice.html" title="class in org.eclipse.january.dataset"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../org/eclipse/january/dataset/SliceND.html" title="class in org.eclipse.january.dataset"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/eclipse/january/dataset/SliceIterator.html" target="_top">Frames</a></li>
<li><a href="SliceIterator.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.eclipse.january.dataset.IndexIterator">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&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><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2014&#x2013;2018 <a href="http://www.eclipse.org/">Eclipse Foundation</a>. All rights reserved.</small></p>
</body>
</html>
