/* * Copyright (c) 2012, the Dart project authors. * * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package com.google.dart.engine.utilities.collection; /** * Instances of the class {@code IntList} implement an extensible list of integer values. * * @coverage dart.engine.utilities */ public class IntList { /** * The number of elements in the list. */ private int count; /** * An array containing the elements in the list. */ private int[] values; /** * Initialize a new list of integers to be empty. */ public IntList() { this(128); } /** * Initialize a new list of integers to be empty but to have room for the given number of elements * without having to grow. * * @param initialCapacity the initial capacity of the list */ public IntList(int initialCapacity) { count = 0; values = new int[initialCapacity]; } /** * Add the given value to this list of values. * * @param value the values to be added */ public void add(int value) { int length = values.length; if (count >= length) { int[] newValues = new int[(length * 3) / 2 + 1]; System.arraycopy(values, 0, newValues, 0, length); values = newValues; } values[count++] = value; } /** * Return the number of elements in this list. * * @return the number of elements in this list */ public int size() { return count; } /** * Return an array containing all of the elements of this list, in the same order as they were * added to the list, that is exactly the same length as the list. * * @return an array containing all of the elements of this list */ public int[] toArray() { int[] result = new int[count]; System.arraycopy(values, 0, result, 0, count); return result; } }