diff options
| author | Michiel Van Der Kolk <not.valid@email.address> | 2005-07-11 15:42:37 +0000 |
|---|---|---|
| committer | Michiel Van Der Kolk <not.valid@email.address> | 2005-07-11 15:42:37 +0000 |
| commit | 9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e (patch) | |
| tree | 4c304cd4151020bd5494d279ee68a105ae3a5a3a /songdbj/org/tritonus/share/StringHashedSet.java | |
| parent | dfa8ecbe609ca8ea194d08560a44fb9a92e94b4b (diff) | |
| download | rockbox-9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e.zip rockbox-9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e.tar.gz rockbox-9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e.tar.bz2 rockbox-9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e.tar.xz | |
Songdb java version, source. only 1.5 compatible
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7101 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'songdbj/org/tritonus/share/StringHashedSet.java')
| -rw-r--r-- | songdbj/org/tritonus/share/StringHashedSet.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/songdbj/org/tritonus/share/StringHashedSet.java b/songdbj/org/tritonus/share/StringHashedSet.java new file mode 100644 index 0000000..8e24466 --- /dev/null +++ b/songdbj/org/tritonus/share/StringHashedSet.java @@ -0,0 +1,112 @@ +/* + * StringHashedSet.java + * + * This file is part of Tritonus: http://www.tritonus.org/ + */ + +/* + * Copyright (c) 2000 by Florian Bomers <http://www.bomers.de> + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as published + * by the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +/* +|<--- this code is formatted to fit into 80 columns --->| +*/ + +package org.tritonus.share; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +import org.tritonus.share.ArraySet; + + +/** + * A set where the elements are uniquely referenced by their + * string representation as given by the objects toString() + * method. No 2 objects with the same toString() can + * be in the set. + * <p> + * The <code>contains(Object elem)</code> and <code>get(Object elem)</code> + * methods can be called with Strings as <code>elem</code> parameter. + * For <code>get(Object elem)</code>, the object that has been added + * is returned, and not its String representation. + * <p> + * Though it's possible to store + * Strings as objects in this class, it doesn't make sense + * as you could use ArraySet for that equally well. + * <p> + * You shouldn't use the ArrayList specific functions + * like those that take index parameters. + * <p> + * It is not possible to add <code>null</code> elements. + */ + +public class StringHashedSet<E> extends ArraySet<E> +{ + public StringHashedSet() + { + super(); + } + + public StringHashedSet(Collection<E> c) + { + super(c); + } + + public boolean add(E elem) + { + if (elem==null) { + return false; + } + return super.add(elem); + } + + public boolean contains(Object elem) + { + if (elem==null) { + return false; + } + String comp=elem.toString(); + Iterator<E> it=iterator(); + while (it.hasNext()) { + if (comp.equals(it.next().toString())) { + return true; + } + } + return false; + } + + public E get(E elem) { + if (elem==null) { + return null; + } + String comp=elem.toString(); + Iterator<E> it=iterator(); + while (it.hasNext()) { + E thisElem=it.next(); + if (comp.equals(thisElem.toString())) { + return thisElem; + } + } + return null; + } +} + +/*** StringHashedSet.java ***/ |