All Downloads are FREE. Search and download functionalities are using the official Maven repository.

drv.SortedMap.drv Maven / Gradle / Ivy

Go to download

fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists and priority queues with a small memory footprint and fast access and insertion; provides also big (64-bit) arrays, sets and lists, and fast, practical I/O classes for binary and text files.

There is a newer version: 8.5.15
Show newest version
/*		 
 * Copyright (C) 2002-2016 Sebastiano Vigna
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. 
 */


package PACKAGE;

import VALUE_PACKAGE.VALUE_COLLECTION;

import it.unimi.dsi.fastutil.objects.ObjectSortedSet;
import it.unimi.dsi.fastutil.objects.ObjectBidirectionalIterator;

import java.util.Map;
import java.util.SortedMap;

#if KEYS_REFERENCE
import java.util.Comparator;
#endif

/** A type-specific {@link SortedMap}; provides some additional methods that use polymorphism to avoid (un)boxing.
 *
 * 

Additionally, this interface strengthens {@link #entrySet()}, * {@link #keySet()}, {@link #values()}, * {@link #comparator()}, {@link SortedMap#subMap(Object,Object)}, {@link SortedMap#headMap(Object)} and {@link SortedMap#tailMap(Object)}. * * @see SortedMap */ public interface SORTED_MAP KEY_VALUE_GENERIC extends MAP KEY_VALUE_GENERIC, SortedMap { /** A sorted entry set providing fast iteration. * *

In some cases (e.g., hash-based classes) iteration over an entry set requires the creation * of a large number of entry objects. Some fastutil * maps might return {@linkplain #entrySet() entry set} objects of type FastSortedEntrySet: in this case, {@link #fastIterator() fastIterator()} * will return an iterator that is guaranteed not to create a large number of objects, possibly * by returning always the same entry (of course, mutated). */ public interface FastSortedEntrySet KEY_VALUE_GENERIC extends ObjectSortedSet, FastEntrySet KEY_VALUE_GENERIC { /** Returns a fast iterator over this sorted entry set; the iterator might return always the same entry object, suitably mutated. * * @return a fast iterator over this sorted entry set; the iterator might return always the same entry object, suitably mutated. */ public ObjectBidirectionalIterator fastIterator( MAP.Entry KEY_VALUE_GENERIC from ); } /** Returns a sorted-set view of the mappings contained in this map. * Note that this specification strengthens the one given in the * corresponding type-specific unsorted map. * * @return a sorted-set view of the mappings contained in this map. * @see Map#entrySet() */ ObjectSortedSet> entrySet(); /** Returns a type-specific sorted-set view of the mappings contained in this map. * Note that this specification strengthens the one given in the * corresponding type-specific unsorted map. * * @return a type-specific sorted-set view of the mappings contained in this map. * @see #entrySet() */ ObjectSortedSet ENTRYSET(); /** Returns a sorted-set view of the keys contained in this map. * Note that this specification strengthens the one given in the * corresponding type-specific unsorted map. * * @return a sorted-set view of the keys contained in this map. * @see Map#keySet() */ SORTED_SET KEY_GENERIC keySet(); /** Returns a set view of the values contained in this map. *

Note that this specification strengthens the one given in {@link Map#values()}, * which was already strengthened in the corresponding type-specific class, * but was weakened by the fact that this interface extends {@link SortedMap}. * * @return a set view of the values contained in this map. * @see Map#values() */ VALUE_COLLECTION VALUE_GENERIC values(); /** Returns the comparator associated with this sorted set, or null if it uses its keys' natural ordering. * *

Note that this specification strengthens the one given in {@link SortedMap#comparator()}. * * @see SortedMap#comparator() */ KEY_COMPARATOR KEY_SUPER_GENERIC comparator(); /** Returns a view of the portion of this sorted map whose keys range from fromKey, inclusive, to toKey, exclusive. * *

Note that this specification strengthens the one given in {@link SortedMap#subMap(Object,Object)}. * * @see SortedMap#subMap(Object,Object) */ SORTED_MAP KEY_VALUE_GENERIC subMap(KEY_GENERIC_CLASS fromKey, KEY_GENERIC_CLASS toKey); /** Returns a view of the portion of this sorted map whose keys are strictly less than toKey. * *

Note that this specification strengthens the one given in {@link SortedMap#headMap(Object)}. * * @see SortedMap#headMap(Object) */ SORTED_MAP KEY_VALUE_GENERIC headMap(KEY_GENERIC_CLASS toKey); /** Returns a view of the portion of this sorted map whose keys are greater than or equal to fromKey. * *

Note that this specification strengthens the one given in {@link SortedMap#tailMap(Object)}. * * @see SortedMap#tailMap(Object) */ SORTED_MAP KEY_VALUE_GENERIC tailMap(KEY_GENERIC_CLASS fromKey); #if KEYS_PRIMITIVE /** Returns a view of the portion of this sorted map whose keys range from fromKey, inclusive, to toKey, exclusive. * @see SortedMap#subMap(Object,Object) */ SORTED_MAP KEY_VALUE_GENERIC subMap(KEY_TYPE fromKey, KEY_TYPE toKey); /** Returns a view of the portion of this sorted map whose keys are strictly less than toKey. * @see SortedMap#headMap(Object) */ SORTED_MAP KEY_VALUE_GENERIC headMap(KEY_TYPE toKey); /** Returns a view of the portion of this sorted map whose keys are greater than or equal to fromKey. * @see SortedMap#tailMap(Object) */ SORTED_MAP KEY_VALUE_GENERIC tailMap(KEY_TYPE fromKey); /** * @see SortedMap#firstKey() */ KEY_TYPE FIRST_KEY(); /** * @see SortedMap#lastKey() */ KEY_TYPE LAST_KEY(); #endif }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy