// 
// Decompiled by Procyon v0.6.0
// 

package it.unimi.dsi.fastutil.floats;

import it.unimi.dsi.fastutil.objects.ObjectIterator;
import it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator;
import java.util.Comparator;
import java.util.Collection;
import java.util.Set;
import it.unimi.dsi.fastutil.objects.ObjectSet;
import it.unimi.dsi.fastutil.objects.ObjectCollection;
import java.util.Map;
import it.unimi.dsi.fastutil.objects.ObjectSortedSet;
import java.util.SortedMap;

public interface Float2ObjectSortedMap<V> extends Float2ObjectMap<V>, SortedMap<Float, V>
{
    Float2ObjectSortedMap<V> subMap(final float p0, final float p1);
    
    Float2ObjectSortedMap<V> headMap(final float p0);
    
    Float2ObjectSortedMap<V> tailMap(final float p0);
    
    float firstFloatKey();
    
    float lastFloatKey();
    
    @Deprecated
    default Float2ObjectSortedMap<V> subMap(final Float from, final Float to) {
        return this.subMap((float)from, (float)to);
    }
    
    @Deprecated
    default Float2ObjectSortedMap<V> headMap(final Float to) {
        return this.headMap((float)to);
    }
    
    @Deprecated
    default Float2ObjectSortedMap<V> tailMap(final Float from) {
        return this.tailMap((float)from);
    }
    
    @Deprecated
    default Float firstKey() {
        return this.firstFloatKey();
    }
    
    @Deprecated
    default Float lastKey() {
        return this.lastFloatKey();
    }
    
    @Deprecated
    default ObjectSortedSet<Map.Entry<Float, V>> entrySet() {
        return (ObjectSortedSet<Map.Entry<Float, V>>)this.float2ObjectEntrySet();
    }
    
    ObjectSortedSet<Float2ObjectMap.Entry<V>> float2ObjectEntrySet();
    
    FloatSortedSet keySet();
    
    ObjectCollection<V> values();
    
    FloatComparator comparator();
    
    public interface FastSortedEntrySet<V> extends ObjectSortedSet<Float2ObjectMap.Entry<V>>, FastEntrySet<V>
    {
        ObjectBidirectionalIterator<Float2ObjectMap.Entry<V>> fastIterator();
        
        ObjectBidirectionalIterator<Float2ObjectMap.Entry<V>> fastIterator(final Float2ObjectMap.Entry<V> p0);
    }
}
