# Class ShapeIterator

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

All Implemented Interfaces:
  `Iterator<int[]>`

public class ShapeIterator extends Object implements 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
Author:
  Mark Taylor (Starlink)

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`boolean`
`hasNext()`
`int[]`
`next()`
`void`
`remove()`

### Methods inherited from class Object

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

### Methods inherited from interface Iterator

`forEachRemaining`

## Constructor Details

### ShapeIterator

public ShapeIterator(int[] shape)
Constructs a new ShapeIterator.

Parameters:
  `shape` - array of dimensions
Throws:
  `IllegalArgumentException` - if `shape` has negative or zero elements

## Method Details

### hasNext

public boolean hasNext()

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

### next

public int[] next()

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

### remove

public void remove()

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