uk.ac.starlink.table

## Class ShapeIterator

- java.lang.Object
- - uk.ac.starlink.table.ShapeIterator

- All Implemented Interfaces:
    java.util.Iterator<int[]>

      public class ShapeIterator
      extends java.lang.Object
      implements java.util.Iterator<int[]>

  Iterates over a shape array, as got from `ValueInfo.getShape()`. Will only work for a finite-valued array, not for one with a variable last dimension (negative dimension value). The object returned by the `next` method is an array with the same number of dimensions as the shape itself, giving the current position (the first returned value is an N-element array of zeros).
  Since:
    2 Mar 2005

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ShapeIterator(int[] shape)` Constructs a new ShapeIterator.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `hasNext()`
    `int[]` | `next()`
    `void` | `remove()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface java.util.Iterator

      `forEachRemaining`

- - ### Constructor Detail

    - #### ShapeIterator

          public ShapeIterator(int[] shape)

      Constructs a new ShapeIterator.
      Parameters:
        `shape` - array of dimensions
      Throws:
        `java.lang.IllegalArgumentException` - if `shape` has negative or zero elements

  - ### Method Detail

    - #### hasNext

          public boolean hasNext()

      Specified by:
        `hasNext` in interface `java.util.Iterator<int[]>`

    - #### next

          public int[] next()

      Specified by:
        `next` in interface `java.util.Iterator<int[]>`

    - #### remove

          public void remove()

      Specified by:
        `remove` in interface `java.util.Iterator<int[]>`