package org.basex.util.list; import java.util.Iterator; import org.basex.util.Array; import org.basex.util.Util; /** * This is a simple container for native integer arrays. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class IntArrayList extends ElementList implements Iterable<int[]> { /** Elements container. */ int[][] list; /** * Default constructor. */ public IntArrayList() { this(CAP); } /** * Constructor, specifying an initial array capacity. * @param c initial capacity */ public IntArrayList(final int c) { list = new int[c][]; } /** * Adds an element. * @param e element to be added */ public void add(final int[] e) { if(size == list.length) list = Array.copyOf(list, newSize()); list[size++] = e; } /** * Returns the element at the specified index. * @param i index * @return element */ public int[] get(final int i) { return list[i]; } /** * Sets an element at the specified index. * @param i index * @param e element to be set */ public void set(final int i, final int[] e) { if(i >= list.length) list = Array.copyOf(list, newSize(i + 1)); list[i] = e; size = Math.max(size, i + 1); } @Override public Iterator<int[]> iterator() { return new Iterator<int[]>() { private int c; @Override public boolean hasNext() { return c < size; } @Override public int[] next() { return list[c++]; } @Override public void remove() { Util.notexpected(); } }; } }