![JAR search and dependency download from the Maven repository](/logo.png)
org.jhotdraw8.icollection.sequenced.ReversedSequencedSetView Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.jhotdraw8.icollection Show documentation
Show all versions of org.jhotdraw8.icollection Show documentation
JHotDraw8 Immutable Collections
The newest version!
package org.jhotdraw8.icollection.sequenced;
import java.util.AbstractSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.SequencedSet;
import java.util.Spliterator;
import java.util.function.Supplier;
/**
* Provides a reversed view on a {@link SequencedSet}.
*
* @param the element type
*/
public class ReversedSequencedSetView extends AbstractSet implements SequencedSet {
private final SequencedSet src;
private final Supplier> reverseIterator;
private final Supplier> reverseSpliterator;
/**
* Constructs a new instance.
*
* @param src the source set
* @param reverseIterator the reverse iterator
* @param reverseSpliterator the reverse spliterator
*/
public ReversedSequencedSetView(SequencedSet src,
Supplier> reverseIterator,
Supplier> reverseSpliterator) {
this.src = src;
this.reverseIterator = reverseIterator;
this.reverseSpliterator = reverseSpliterator;
}
@Override
public boolean equals(Object o) {
return src.equals(o);
}
@Override
public int hashCode() {
return src.hashCode();
}
@Override
public boolean isEmpty() {
return src.isEmpty();
}
@Override
public boolean contains(Object o) {
return src.contains(o);
}
@Override
public boolean add(E e) {
if (src.contains(e)) {
return false;
}
src.addFirst(e);
return true;
}
@Override
public boolean remove(Object o) {
return src.remove(o);
}
@Override
public boolean containsAll(Collection> c) {
return src.containsAll(c);
}
@Override
public boolean retainAll(Collection> c) {
return src.retainAll(c);
}
@Override
public void clear() {
src.clear();
}
@Override
public Spliterator spliterator() {
return reverseSpliterator.get();
}
@Override
public E getFirst() {
return src.getLast();
}
@Override
public E getLast() {
return src.getFirst();
}
@Override
public Iterator iterator() {
return reverseIterator.get();
}
@Override
public int size() {
return src.size();
}
@Override
public void addFirst(E e) {
src.addLast(e);
}
@Override
public void addLast(E e) {
src.addFirst(e);
}
@Override
public E removeFirst() {
return src.removeLast();
}
@Override
public E removeLast() {
return src.removeFirst();
}
@Override
public SequencedSet reversed() {
return src;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy