001 package net.sf.cpsolver.ifs.util; 002 003 import java.util.*; 004 005 /** Vector extension with faster enumeration. 006 * In {@link FastVector#elements()}, no unnecessary check is made. 007 * 008 * @version 009 * IFS 1.1 (Iterative Forward Search)<br> 010 * Copyright (C) 2006 Tomáš Müller<br> 011 * <a href="mailto:muller@unitime.org">muller@unitime.org</a><br> 012 * Lazenska 391, 76314 Zlin, Czech Republic<br> 013 * <br> 014 * This library is free software; you can redistribute it and/or 015 * modify it under the terms of the GNU Lesser General Public 016 * License as published by the Free Software Foundation; either 017 * version 2.1 of the License, or (at your option) any later version. 018 * <br><br> 019 * This library is distributed in the hope that it will be useful, 020 * but WITHOUT ANY WARRANTY; without even the implied warranty of 021 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 022 * Lesser General Public License for more details. 023 * <br><br> 024 * You should have received a copy of the GNU Lesser General Public 025 * License along with this library; if not, write to the Free Software 026 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 027 */ 028 029 public class FastVector extends Vector implements EnumerableCollection { 030 private static final long serialVersionUID = 1L; 031 032 public FastVector() { 033 super(); 034 } 035 public FastVector(int initialCapacity) { 036 super(initialCapacity); 037 } 038 public FastVector(int initialCapacity, int capacityIncrement) { 039 super(initialCapacity, capacityIncrement); 040 } 041 public FastVector(Collection c) { 042 super(c); 043 } 044 045 public Enumeration elements() { 046 return new Enumeration() { 047 int count = 0; 048 public boolean hasMoreElements() { return count < elementCount; } 049 public Object nextElement() { return elementData[count++]; } 050 }; 051 } 052 053 public String toString() { 054 return size()+"/"+super.toString(); 055 } 056 }