From 08d5f7b0a0b24c042aa5976f66bf3a1b5b754478 Mon Sep 17 00:00:00 2001 From: Richard Zahoransky Date: Mon, 7 Nov 2011 16:29:56 +0100 Subject: Localization Code. How-To will follow... --- delaunay/ArraySet.java | 104 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 delaunay/ArraySet.java (limited to 'delaunay/ArraySet.java') diff --git a/delaunay/ArraySet.java b/delaunay/ArraySet.java new file mode 100644 index 0000000..b3fe357 --- /dev/null +++ b/delaunay/ArraySet.java @@ -0,0 +1,104 @@ +package delaunay; + +/* + * Copyright (c) 2007 by L. Paul Chew. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +import java.util.AbstractSet; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +/** + * An ArrayList implementation of Set. An ArraySet is good for small sets; it + * has less overhead than a HashSet or a TreeSet. + * + * @author Paul Chew + * + * Created December 2007. For use with Voronoi/Delaunay applet. + * + */ +public class ArraySet extends AbstractSet { + + private ArrayList items; // Items of the set + + /** + * Create an empty set (default initial capacity is 3). + */ + public ArraySet () { + this(3); + } + + /** + * Create an empty set with the specified initial capacity. + * @param initialCapacity the initial capacity + */ + public ArraySet (int initialCapacity) { + items = new ArrayList(initialCapacity); + } + + /** + * Create a set containing the items of the collection. Any duplicate + * items are discarded. + * @param collection the source for the items of the small set + */ + public ArraySet (Collection collection) { + items = new ArrayList(collection.size()); + for (E item: collection) + if (!items.contains(item)) items.add(item); + } + + /** + * Get the item at the specified index. + * @param index where the item is located in the ListSet + * @return the item at the specified index + * @throws IndexOutOfBoundsException if the index is out of bounds + */ + public E get (int index) throws IndexOutOfBoundsException { + return items.get(index); + } + + /** + * True iff any member of the collection is also in the ArraySet. + * @param collection the Collection to check + * @return true iff any member of collection appears in this ArraySet + */ + public boolean containsAny (Collection collection) { + for (Object item: collection) + if (this.contains(item)) return true; + return false; + } + + @Override + public boolean add(E item) { + if (items.contains(item)) return false; + return items.add(item); + } + + @Override + public Iterator iterator() { + return items.iterator(); + } + + @Override + public int size() { + return items.size(); + } + +} -- cgit v1.2.3-55-g7522