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

drv.ImmutableSortedPair.drv Maven / Gradle / Ivy

Go to download

fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists, and queues with a small memory footprint and fast operations; it provides also big (64-bit) arrays, sets, and lists, sorting algorithms, fast, practical I/O classes for binary and text files, and facilities for memory mapping large files. This jar (fastutil-core.jar) contains data structures based on integers, longs, doubles, and objects, only; fastutil.jar contains all classes. If you have both jars in your dependencies, this jar should be excluded.

There is a newer version: 8.5.15
Show newest version
/*
 * Copyright (C) 2020-2022 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;

/**  A type-specific immutable {@link it.unimi.dsi.fastutil.SortedPair SortedPair}; provides some additional methods that use polymorphism to avoid (un)boxing. */

#if KEYS_PRIMITIVE
public class IMMUTABLE_SORTED_PAIR extends IMMUTABLE_PAIR implements SORTED_PAIR, java.io.Serializable {
#else
public class IMMUTABLE_SORTED_PAIR > extends IMMUTABLE_PAIR  implements it.unimi.dsi.fastutil.SortedPair, java.io.Serializable {
#endif
	private static final long serialVersionUID = 0L;

	private IMMUTABLE_SORTED_PAIR(final KEY_GENERIC_TYPE left, final KEY_GENERIC_TYPE right) {
		super(left, right);
	}

	/** Returns a new type-specific immutable {@link it.unimi.dsi.fastutil.SortedPair SortedPair} with given left and right value. 
	 *
	 * 

Note that if {@code left} and {@code right} are in the wrong order, they will be exchanged. * * @param left the left value. * @param right the right value. * * @implSpec This factory method delegates to the constructor. */ #if KEYS_PRIMITIVE public static IMMUTABLE_SORTED_PAIR of(final KEY_GENERIC_TYPE left, final KEY_GENERIC_TYPE right) { if (left <= right) return new IMMUTABLE_SORTED_PAIR(left, right); else return new IMMUTABLE_SORTED_PAIR(right, left); #else public static > IMMUTABLE_SORTED_PAIR of(final KEY_GENERIC_TYPE left, final KEY_GENERIC_TYPE right) { if (left.compareTo(right) <= 0) return new IMMUTABLE_SORTED_PAIR (left, right); else return new IMMUTABLE_SORTED_PAIR (right, left); #endif } @Override @SuppressWarnings("rawtypes") public boolean equals(Object other) { if (other == null) return false; #if KEYS_PRIMITIVE || VALUES_PRIMITIVE if (other instanceof SORTED_PAIR) { return #if KEY_CLASS_Object java.util.Objects.equals(left, ((SORTED_PAIR)other).PAIR_LEFT()) #else left == ((SORTED_PAIR)other).PAIR_LEFT() #endif #if VALUE_CLASS_Object && java.util.Objects.equals(right, ((SORTED_PAIR)other).PAIR_RIGHT()); #else && right == ((SORTED_PAIR)other).PAIR_RIGHT(); #endif } #endif if (other instanceof it.unimi.dsi.fastutil.SortedPair) { return #if KEYS_USE_REFERENCE_EQUALITY left == ((it.unimi.dsi.fastutil.SortedPair)other).left() #else java.util.Objects.equals(KEY2OBJ(left), ((it.unimi.dsi.fastutil.SortedPair)other).left()) #endif #if VALUES_USE_REFERENCE_EQUALITY && right == ((it.unimi.dsi.fastutil.SortedPair)other).right(); #else && java.util.Objects.equals(VALUE2OBJ(right), ((it.unimi.dsi.fastutil.SortedPair)other).right()); #endif } return false; } /** Returns a string representation of this sorted pair in the form {l,r}. * * @return a string representation of this pair sorted in the form {l,r}. */ @Override public String toString() { return "{" + PAIR_LEFT() + "," + PAIR_RIGHT() + "}"; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy