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

it.unimi.dsi.fastutil.floats.FloatComparators 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 access and insertion; 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. Note that if you have both this jar and fastutil-core.jar in your dependencies, fastutil-core.jar should be excluded.

There is a newer version: 8.5.15
Show newest version
/* Generic definitions */
/* Assertions (useful to generate conditional code) */
/* Current type and class (and size, if applicable) */
/* Value methods */
/* Interfaces (keys) */
/* Interfaces (values) */
/* Abstract implementations (keys) */
/* Abstract implementations (values) */
/* Static containers (keys) */
/* Static containers (values) */
/* Implementations */
/* Synchronized wrappers */
/* Unmodifiable wrappers */
/* Other wrappers */
/* Methods (keys) */
/* Methods (values) */
/* Methods (keys/values) */
/* Methods that have special names depending on keys (but the special names depend on values) */
/* Equality */
/* Object/Reference-only definitions (keys) */
/* Primitive-type-only definitions (keys) */
/* Object/Reference-only definitions (values) */
/*		 
 * Copyright (C) 2003-2016 Paolo Boldi and 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 it.unimi.dsi.fastutil.floats;
/**
 * A class providing static methods and objects that do useful things with
 * comparators.
 */
public class FloatComparators {
	private FloatComparators() {
	}
	/** A type-specific comparator mimicking the natural order. */
	protected static class NaturalImplicitComparator
			extends
				AbstractFloatComparator implements java.io.Serializable {
		private static final long serialVersionUID = 1L;
		public final int compare(final float a, final float b) {
			return (Float.compare((a), (b)));
		}
		private Object readResolve() {
			return NATURAL_COMPARATOR;
		}
	};

	public static final FloatComparator NATURAL_COMPARATOR = new NaturalImplicitComparator();
	/** A type-specific comparator mimicking the opposite of the natural order. */
	protected static class OppositeImplicitComparator
			extends
				AbstractFloatComparator implements java.io.Serializable {
		private static final long serialVersionUID = 1L;
		public final int compare(final float a, final float b) {
			return -(Float.compare((a), (b)));
		}
		private Object readResolve() {
			return OPPOSITE_COMPARATOR;
		}
	};

	public static final FloatComparator OPPOSITE_COMPARATOR = new OppositeImplicitComparator();
	protected static class OppositeComparator extends AbstractFloatComparator
			implements
				java.io.Serializable {
		private static final long serialVersionUID = 1L;
		private final FloatComparator comparator;
		protected OppositeComparator(final FloatComparator c) {
			comparator = c;
		}
		public final int compare(final float a, final float b) {
			return comparator.compare(b, a);
		}
	};
	/**
	 * Returns a comparator representing the opposite order of the given
	 * comparator.
	 *
	 * @param c
	 *            a comparator.
	 * @return a comparator representing the opposite order of c.
	 */
	public static FloatComparator oppositeComparator(final FloatComparator c) {
		return new OppositeComparator(c);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy