⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrays.java

📁 java源代码 请看看啊 提点宝贵的意见
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
/* * @(#)Arrays.java	1.48 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.util;import java.lang.reflect.*;/** * This class contains various methods for manipulating arrays (such as * sorting and searching).  This class also contains a static factory  * that allows arrays to be viewed as lists. * * <p>The methods in this class all throw a <tt>NullPointerException</tt> if * the specified array reference is null. * * <p>The documentation for the methods contained in this class includes * briefs description of the <i>implementations</i>.  Such descriptions should * be regarded as <i>implementation notes</i>, rather than parts of the * <i>specification</i>.  Implementors should feel free to substitute other * algorithms, so long as the specification itself is adhered to.  (For * example, the algorithm used by <tt>sort(Object[])</tt> does not have to be * a mergesort, but it does have to be <i>stable</i>.) * * <p>This class is a member of the  * <a href="{@docRoot}/../guide/collections/index.html"> * Java Collections Framework</a>. * * @author  Josh Bloch * @version 1.48, 01/23/03 * @see     Comparable * @see     Comparator * @since   1.2 */public class Arrays {    // Suppresses default constructor, ensuring non-instantiability.    private Arrays() {    }    // Sorting    /**     * Sorts the specified array of longs into ascending numerical order.     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(long[] a) {	sort1(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of longs into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)     *     * <p>The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     * <tt>toIndex &gt; a.length</tt>     */    public static void sort(long[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort1(a, fromIndex, toIndex-fromIndex);    }    /**     * Sorts the specified array of ints into ascending numerical order.     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(int[] a) {	sort1(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of ints into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)<p>     *     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     *	       <tt>toIndex &gt; a.length</tt>     */    public static void sort(int[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort1(a, fromIndex, toIndex-fromIndex);    }    /**     * Sorts the specified array of shorts into ascending numerical order.     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(short[] a) {	sort1(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of shorts into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)<p>     *     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     *	       <tt>toIndex &gt; a.length</tt>     */    public static void sort(short[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort1(a, fromIndex, toIndex-fromIndex);    }    /**     * Sorts the specified array of chars into ascending numerical order.     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(char[] a) {	sort1(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of chars into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)<p>     *     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     *	       <tt>toIndex &gt; a.length</tt>     */    public static void sort(char[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort1(a, fromIndex, toIndex-fromIndex);    }    /**     * Sorts the specified array of bytes into ascending numerical order.     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(byte[] a) {	sort1(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of bytes into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)<p>     *     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     *	       <tt>toIndex &gt; a.length</tt>     */    public static void sort(byte[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort1(a, fromIndex, toIndex-fromIndex);    }    /**     * Sorts the specified array of doubles into ascending numerical order.     * <p>     * The <code>&lt;</code> relation does not provide a total order on     * all floating-point values; although they are distinct numbers     * <code>-0.0 == 0.0</code> is <code>true</code> and a NaN value     * compares neither less than, greater than, nor equal to any     * floating-point value, even itself.  To allow the sort to     * proceed, instead of using the <code>&lt;</code> relation to     * determine ascending numerical order, this method uses the total     * order imposed by {@link Double#compareTo}.  This ordering     * differs from the <code>&lt;</code> relation in that     * <code>-0.0</code> is treated as less than <code>0.0</code> and     * NaN is considered greater than any other floating-point value.     * For the purposes of sorting, all NaN values are considered     * equivalent and equal.     * <p>     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(double[] a) {	sort2(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of doubles into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)     * <p>     * The <code>&lt;</code> relation does not provide a total order on     * all floating-point values; although they are distinct numbers     * <code>-0.0 == 0.0</code> is <code>true</code> and a NaN value     * compares neither less than, greater than, nor equal to any     * floating-point value, even itself.  To allow the sort to     * proceed, instead of using the <code>&lt;</code> relation to     * determine ascending numerical order, this method uses the total     * order imposed by {@link Double#compareTo}.  This ordering     * differs from the <code>&lt;</code> relation in that     * <code>-0.0</code> is treated as less than <code>0.0</code> and     * NaN is considered greater than any other floating-point value.     * For the purposes of sorting, all NaN values are considered     * equivalent and equal.     * <p>     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     * @param fromIndex the index of the first element (inclusive) to be     *        sorted.     * @param toIndex the index of the last element (exclusive) to be sorted.     * @throws IllegalArgumentException if <tt>fromIndex &gt; toIndex</tt>     * @throws ArrayIndexOutOfBoundsException if <tt>fromIndex &lt; 0</tt> or     *	       <tt>toIndex &gt; a.length</tt>     */    public static void sort(double[] a, int fromIndex, int toIndex) {        rangeCheck(a.length, fromIndex, toIndex);	sort2(a, fromIndex, toIndex);    }    /**     * Sorts the specified array of floats into ascending numerical order.     * <p>     * The <code>&lt;</code> relation does not provide a total order on     * all floating-point values; although they are distinct numbers     * <code>-0.0f == 0.0f</code> is <code>true</code> and a NaN value     * compares neither less than, greater than, nor equal to any     * floating-point value, even itself.  To allow the sort to     * proceed, instead of using the <code>&lt;</code> relation to     * determine ascending numerical order, this method uses the total     * order imposed by {@link Float#compareTo}.  This ordering     * differs from the <code>&lt;</code> relation in that     * <code>-0.0f</code> is treated as less than <code>0.0f</code> and     * NaN is considered greater than any other floating-point value.     * For the purposes of sorting, all NaN values are considered     * equivalent and equal.     * <p>     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.     */    public static void sort(float[] a) {	sort2(a, 0, a.length);    }    /**     * Sorts the specified range of the specified array of floats into     * ascending numerical order.  The range to be sorted extends from index     * <tt>fromIndex</tt>, inclusive, to index <tt>toIndex</tt>, exclusive.     * (If <tt>fromIndex==toIndex</tt>, the range to be sorted is empty.)     * <p>     * The <code>&lt;</code> relation does not provide a total order on     * all floating-point values; although they are distinct numbers     * <code>-0.0f == 0.0f</code> is <code>true</code> and a NaN value     * compares neither less than, greater than, nor equal to any     * floating-point value, even itself.  To allow the sort to     * proceed, instead of using the <code>&lt;</code> relation to     * determine ascending numerical order, this method uses the total     * order imposed by {@link Float#compareTo}.  This ordering     * differs from the <code>&lt;</code> relation in that     * <code>-0.0f</code> is treated as less than <code>0.0f</code> and     * NaN is considered greater than any other floating-point value.     * For the purposes of sorting, all NaN values are considered     * equivalent and equal.     * <p>     * The sorting algorithm is a tuned quicksort, adapted from Jon     * L. Bentley and M. Douglas McIlroy's "Engineering a Sort Function",     * Software-Practice and Experience, Vol. 23(11) P. 1249-1265 (November     * 1993).  This algorithm offers n*log(n) performance on many data sets     * that cause other quicksorts to degrade to quadratic performance.     *     * @param a the array to be sorted.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -