![JAR search and dependency download from the Maven repository](/logo.png)
org.jhotdraw8.icollection.sequenced.ReversedSequencedMapView 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 org.jspecify.annotations.Nullable;
import java.util.AbstractMap;
import java.util.Collection;
import java.util.SequencedCollection;
import java.util.SequencedMap;
import java.util.SequencedSet;
import java.util.Set;
/**
* Provides a reversed view on a {@link SequencedMap}.
*
* @param the key type
* @param the value type
*/
public class ReversedSequencedMapView extends AbstractMap implements SequencedMap {
private final SequencedMap src;
/**
* Constructs a new instance.
*
* @param src the source map
*/
public ReversedSequencedMapView(SequencedMap src) {
this.src = src;
}
@Override
public boolean equals(Object o) {
return src.equals(o);
}
@Override
public int hashCode() {
return src.hashCode();
}
@Override
public int size() {
return src.size();
}
@Override
public boolean isEmpty() {
return src.isEmpty();
}
@Override
public boolean containsValue(Object value) {
return src.containsValue(value);
}
@Override
public boolean containsKey(Object key) {
return src.containsKey(key);
}
@Override
public V get(Object key) {
return src.get(key);
}
@Override
public V remove(Object key) {
return src.remove(key);
}
@Override
public Set> entrySet() {
return src.sequencedEntrySet().reversed();
}
@Override
public @Nullable V put(K key, V value) {
if (src.containsKey(key)) {
return src.put(key, value);
} else {
src.putFirst(key, value);
return null;
}
}
@Override
public boolean remove(Object key, Object value) {
return src.remove(key, value);
}
@Override
public void clear() {
src.clear();
}
@Override
public Set keySet() {
return src.sequencedKeySet().reversed();
}
@Override
public Collection values() {
return src.sequencedValues().reversed();
}
@Override
public SequencedMap reversed() {
return src;
}
@Override
public SequencedSet sequencedKeySet() {
return src.sequencedKeySet().reversed();
}
@Override
public SequencedCollection sequencedValues() {
return src.sequencedValues().reversed();
}
@Override
public SequencedSet> sequencedEntrySet() {
return src.sequencedEntrySet().reversed();
}
@Nullable
@Override
public Entry firstEntry() {
return src.lastEntry();
}
@Nullable
@Override
public Entry lastEntry() {
return src.firstEntry();
}
@Override
public @Nullable Entry pollFirstEntry() {
return src.pollLastEntry();
}
@Override
public @Nullable Entry pollLastEntry() {
return src.pollFirstEntry();
}
@Override
public @Nullable V putFirst(K k, V v) {
return src.putLast(k, v);
}
@Override
public @Nullable V putLast(K k, V v) {
return src.putFirst(k, v);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy