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

org.plumelib.util.package-info Maven / Gradle / Ivy

/**
 *
 *
 * 

Plume-lib Util: Utility libraries for Java

* *

Note that HashMap * Util defines other classes in the org.plumelib.util package. * *

Collections and iterators

* *
*
{@link org.plumelib.util.ArraysPlume ArraysPlume} *
Utilities for manipulating arrays and collections. This complements java.util.Arrays and * java.util.Collections. *
{@link org.plumelib.util.CollectionsPlume CollectionsPlume} *
Utilities for manipulating collections, iterators, lists, maps, and sets. *
{@link org.plumelib.util.CombinationIterator CombinationIterator} *
Given a set of collections, return all combinations that take one element from each * collection. *
{@link org.plumelib.util.LimitedSizeSet LimitedSizeSet} *
Stores up to some maximum number of unique values, at which point its rep is nulled, in * order to save space. *
{@link org.plumelib.util.LimitedSizeIntSet LimitedSizeIntSet} *
Stores up to some maximum number of unique integer values, at which point its rep is * nulled, in order to save space. More efficient than {@code LimitedSizeSet}. *
{@link org.plumelib.util.LimitedSizeLongSet LimitedSizeLongSet} *
Stores up to some maximum number of unique long values, at which point its rep is nulled, * in order to save space. More efficient than {@code LimitedSizeSet}. *
{@link org.plumelib.util.OrderedPairIterator OrderedPairIterator} *
Given two sequences/iterators/whatever, OrderedPairIterator returns a new * sequence/iterator/whatever that pairs the matching elements of the inputs, according to * their respective sort orders. (This operation is sometimes called "zipping".) *
{@link org.plumelib.util.Hasher Hasher} *
See HashMap * Util. *
{@code WeakHasherMap} *
See HashMap * Util. *
{@code WeakIdentityHashMap} *
See HashMap * Util. *
* *

Text processing

* *
*
{@link org.plumelib.util.EntryReader EntryReader} *
Class that reads "entries" from a file. In the simplest case, entries can be lines. It * supports: include files, comments, and multi-line entries (paragraphs). The syntax of each * of these is customizable. *
{@link org.plumelib.util.FileIOException FileIOException} *
Extends IOException by also reporting a file name and line number at which the exception * occurred. *
{@link org.plumelib.util.FilesPlume} *
Utility methods that create and manipulate files, directories, streams, readers, and * writers. *
{@link org.plumelib.util.FileWriterWithName FileWriterWithName} *
Just like {@code FileWriter}, but adds a {@code getFileName()} method and overrides {@code * toString()} to give the file name. *
{@link org.plumelib.util.RegexUtil RegexUtil} *
Utility methods for regular expressions, most notably for testing whether a string is a * regular expression. *
{@link org.plumelib.util.StringsPlume} *
Utility methods that manipulate Strings: replacement; prefixing and indentation; splitting * and joining; quoting and escaping; whitespace; comparisons; StringTokenizer; debugging * variants of toString; diagnostic output; miscellaneous. * * *
* *

Math

* *
*
{@link org.plumelib.util.MathPlume MathPlume} *
Mathematical utilities. *
{@link org.plumelib.util.FuzzyFloat FuzzyFloat} *
Routines for doing approximate ('fuzzy') floating point comparisons. Those are comparisons * that only require the floating point numbers to be relatively close to one another to be * equal, rather than exactly equal. *
* *

Random selection

* *
*
{@link org.plumelib.util.RandomSelector RandomSelector} *
Selects k elements uniformly at random from an arbitrary iterator, using O(k) * space. *
{@link org.plumelib.util.MultiRandSelector MultiRandSelector} *
Like RandomSelector, performs a uniform random selection over an iterator. However, the * objects in the iteration may be partitioned so that the random selection chooses the same * number from each group. *
* *

Determinism and immutability

* *
*
{@link org.plumelib.util.DeterministicObject DeterministicObject} *
A version of {@code Object} with a deterministic {@code hashCode()} method. Instantiate * this instead of {@code Object} to remove a source of nondeterminism from your programs. *
{@link org.plumelib.util.ClassDeterministic ClassDeterministic} *
Deterministic versions of {@code java.lang.Class} methods, which return arrays in sorted * order. *
{@link org.plumelib.util.UniqueId UniqueId} *
An interface for objects that have a unique ID. If you are tempted to print the value of * {@code System.identityHashCode()}, consider using this instead. *
{@link org.plumelib.util.UniqueIdMap UniqueIdMap} *
Provides a unique ID (like the {@link org.plumelib.util.UniqueId UniqueId} class) for * classes that you cannot modify. *
{@link org.plumelib.util.ImmutableTypes ImmutableTypes} *
Indicates which types in the JDK are immutable. *
* *

Utility interfaces

* *
*
{@link org.plumelib.util.Partitioner Partitioner} *
A Partitioner accepts Objects and assigns them to an equivalence class. *
* *

JVM runtime system

* *
*
{@link org.plumelib.util.DumpHeap DumpHeap} *
Dumps the heap into a {@code .hprof} file. *
{@link org.plumelib.util.SystemPlume SystemPlume} *
Utility methods relating to the JVM runtime system: sleep and garbage collection. *
* *

Miscellaneous

* *
*
{@link org.plumelib.util.GraphPlume GraphPlume} *
Graph utility methods. This class does not model a graph: all methods are static. *
{@link org.plumelib.util.Intern Intern} *
Utilities for interning objects. Interning is also known as canonicalization or * hash-consing: it returns a single representative object that {@code .equals()} the object, * and the client discards the argument and uses the result instead. *
{@link org.plumelib.util.IPair IPair} *
Immutable pair class: type-safely holds two objects of possibly-different types. *
{@link org.plumelib.util.MPair MPair} *
Mutable pair class: type-safely holds two objects of possibly-different types. *
{@link org.plumelib.util.WeakIdentityPair WeakIdentityPair} *
Immutable pair class with weakly-held values. Differs from {@code IPair} in the following * ways: cannot hold null, holds its elements with weak pointers, clients must use getter * methods rather than accessing the fields, and its {@code equals()} method uses object * equality to compare its elements. *
{@link org.plumelib.util.UtilPlume UtilPlume} *
Utility methods that do not belong elsewhere in the plume package: BitSet; File; * directories; file names; reading and writing; hashing; ProcessBuilder; properties; Stream; * Throwable. *
*/ package org.plumelib.util;




© 2015 - 2025 Weber Informatics LLC | Privacy Policy