From 9fee0ec4ca0c5b7a334cc29dbb58e76c7a4c736e Mon Sep 17 00:00:00 2001 From: Michiel Van Der Kolk Date: Mon, 11 Jul 2005 15:42:37 +0000 Subject: Songdb java version, source. only 1.5 compatible git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7101 a1c6a512-1295-4272-9138-f99709370657 --- songdbj/org/tritonus/share/StringHashedSet.java | 112 ++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 songdbj/org/tritonus/share/StringHashedSet.java (limited to 'songdbj/org/tritonus/share/StringHashedSet.java') 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 + * + * + * 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. + *

+ * The contains(Object elem) and get(Object elem) + * methods can be called with Strings as elem parameter. + * For get(Object elem), the object that has been added + * is returned, and not its String representation. + *

+ * 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. + *

+ * You shouldn't use the ArrayList specific functions + * like those that take index parameters. + *

+ * It is not possible to add null elements. + */ + +public class StringHashedSet extends ArraySet +{ + public StringHashedSet() + { + super(); + } + + public StringHashedSet(Collection 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 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 it=iterator(); + while (it.hasNext()) { + E thisElem=it.next(); + if (comp.equals(thisElem.toString())) { + return thisElem; + } + } + return null; + } +} + +/*** StringHashedSet.java ***/ -- cgit v1.1