001 /**
002 * Copyright (C) 2007-2011, Jens Lehmann
003 *
004 * This file is part of DL-Learner.
005 *
006 * DL-Learner is free software; you can redistribute it and/or modify
007 * it under the terms of the GNU General Public License as published by
008 * the Free Software Foundation; either version 3 of the License, or
009 * (at your option) any later version.
010 *
011 * DL-Learner is distributed in the hope that it will be useful,
012 * but WITHOUT ANY WARRANTY; without even the implied warranty of
013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
014 * GNU General Public License for more details.
015 *
016 * You should have received a copy of the GNU General Public License
017 * along with this program. If not, see <http://www.gnu.org/licenses/>.
018 */
019
020 package org.dllearner.prolog;
021
022 import java.util.ArrayList;
023 import java.util.Collection;
024 import java.util.Iterator;
025 import java.util.Set;
026
027 /**
028 *
029 * @author Sebastian Bader
030 *
031 * @param <T>
032 */
033 public class ArrayListSet<T> extends ArrayList<T> implements Set<T> {
034
035 private static final long serialVersionUID = 1530739499015312204L;
036
037 public ArrayListSet() {
038 this(10);
039 }
040
041 public ArrayListSet(int initialCapacity) {
042 super(initialCapacity);
043 }
044
045 public ArrayListSet(Collection<T> c) {
046 this(c.size());
047 addAll(c);
048 }
049
050 @Override
051 public boolean add(T o) {
052 if (contains(o))
053 return false;
054 return super.add(o);
055 }
056
057 @Override
058 public boolean addAll(Collection<? extends T> c) {
059 Iterator<? extends T> iter = c.iterator();
060 boolean ret = false;
061 while (iter.hasNext()) {
062 if (add(iter.next())) {
063 ret = true;
064 }
065 }
066 return ret;
067 }
068
069 }