package com.revolsys.collection.list; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class NoRepeatArrayList extends ArrayList { /** * */ private static final long serialVersionUID = -8395301622287658179L; @Override public void add(final int index, final Object object) { if (isEmpty()) { super.add(index, object); } else if (index > 0 && get(index - 1).equals(object)) { return; } else if (index < size() && get(index).equals(object)) { return; } else { super.add(index, object); } } @Override public boolean add(final Object object) { if (isEmpty()) { return super.add(object); } else if (!get(size() - 1).equals(object)) { return super.add(object); } else { return false; } } @Override public boolean addAll(final Collection values) { ensureCapacity(size() + values.size()); boolean modified = false; for (final Iterator iter = values.iterator(); iter.hasNext();) { final Object value = iter.next(); if (add(value)) { modified = true; } } return modified; } @Override public boolean addAll(int index, final Collection values) { ensureCapacity(size() + values.size()); for (final Iterator iter = values.iterator(); iter.hasNext();) { final Object value = iter.next(); add(index++, value); } return true; } }