Java API ——Arrays类

1、Arrays类概述

  · 针对数组进行操作的工具类。

  · 提供了排序,查找等功能。

2、成员方法

  · public static String toString(int[] a):in[] a可以改为其他类型的数组,把数组转成字符串

  · public static void sort(int[] a):将各种类型的数组进行升序排序

  · public static int binarySearch(int[] a,int key):将各种类型的数组进行二分查找

public class ArraysDemo01 {
    public static void main(String[] args) {
        // 定义一个数组
        int[] arr = { 24, 69, 80, 57, 13 };
        // public static String toString(int[] a) 把数组转成字符串
        System.out.println("排序前:"+ Arrays.toString(arr)); //排序前:[24, 69, 80, 57, 13]
        // public static void sort(int[] a) 对数组进行排序
        Arrays.sort(arr);
        System.out.println("排序后:"+Arrays.toString(arr)); //排序后:[13, 24, 57, 69, 80]
        int[] arr2 = {13, 24, 57, 69, 80};
        // public static int binarySearch(int[] a,int key) 二分查找
        System.out.println("binarySearch:"+Arrays.binarySearch(arr2,57)); //binarySearch:2
        System.out.println("binarySearch:"+Arrays.binarySearch(arr2,557)); //binarySearch:-6 return -(low+1)
    }
}

3、Arrays类常用方法源码详细解释

public static String toString(int[] a)
public static void sort(int[] a) 底层是快速排序
public static int binarySearch(int[] a,int key)
开发原则:
    只要是对象,我们就要判断该对象是否为null。
测试代码:
int[] arr = { 24, 69, 80, 57, 13 };
System.out.println("排序前:" + Arrays.toString(arr));
sort源码:
public static String toString(int[] a) {
    //a -- arr -- { 24, 69, 80, 57, 13 }
    if (a == null)
        return "null"; //说明数组对象不存在
    int iMax = a.length - 1; //iMax=4;
    if (iMax == -1)
        return "[]"; //说明数组存在,但是没有元素。
    StringBuilder b = new StringBuilder();
    b.append(‘[‘); //"["
    for (int i = 0; ; i++) {
        b.append(a[i]); //"[24, 69, 80, 57, 13"
        if (i == iMax)
            //"[24, 69, 80, 57, 13]"
            return b.append(‘]‘).toString();
        b.append(", "); //"[24, 69, 80, 57, "
    }
}
-----------------------------------------------------
测试代码:
int[] arr = {13, 24, 57, 69, 80};
System.out.println("binarySearch:" + Arrays.binarySearch(arr, 577));
binarySearch源码:
public static int binarySearch(int[] a, int key) {
    //a -- arr -- {13, 24, 57, 69, 80}
    //key -- 577
    return binarySearch0(a, 0, a.length, key);
}
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
                                 int key) {
    //a -- arr --  {13, 24, 57, 69, 80}
    //fromIndex -- 0
    //toIndex -- 5
    //key -- 577                           

    int low = fromIndex; //low=0
    int high = toIndex - 1; //high=4
    while (low <= high) {
        int mid = (low + high) >>> 1; //mid=2,mid=3,mid=4
        int midVal = a[mid]; //midVal=57,midVal=69,midVal=80
        if (midVal < key)
            low = mid + 1; //low=3,low=4,low=5
        else if (midVal > key)
            high = mid - 1;
        else
            return mid; // key found
    }
    return -(low + 1);  // key not found.
}
时间: 2024-10-05 07:03:27

Java API ——Arrays类的相关文章

Java中Arrays类的两个方法:deepEquals和equals

deepEquals和equals是Java中Arrays类的两个静态方法,可是它们之间有什么样的区别呢? 代码一. import java.util.Arrays; public class Test { public static void main(String[] args) { String[][] name1 = {{ "G","a","o" },{ "H","u","a",

java的Arrays类的应用

java.util.Arrays类能方便地操作数组,它提供的所有方法都是静态的.具有以下功能: 1.直接输出数组里面的元素(java核心卷-数组是一种数据结构) 2 给数组赋值:通过fill方法. 2 对数组排序:通过sort方法,按升序. 2 比较数组:通过equals方法比较数组中元素值是否相等. 2 查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作. Arrays.fill()方法; 用法1:接受2个参数Arrays.fill( a1, value );注:

7.Java集合-Arrays类实现原理及源码分析

Java集合---Arrays类源码解析 转自:http://www.cnblogs.com/ITtangtang/p/3948765.html 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Primitive(8种基本类型)和Object两大类. 基本类型:采用调优的快速排序: 对象类型:采用改进的归并排序. 1.对于基本类型源码分析如下(以int[]为例): Java对Primitive(int,float等原型数据)数组采用快速排序,对

java.util.Arrays类

java.util.Arrays类能方便的操作数组,它所有的方法都是静态的. 1.filll方法 :给数组中的某段元素附上相同值. 2.sort方法:对数组中某段元素排序. 3.equals方法:比较两个数组,判断的是数组中元素值是否相等. 4.binarySearch方法:对排过序的数组进行二分法查找. 不错的例子: /*-------文件名: UsingArrys.java-------*/ package com.sjx.test; import java.util.Arrays; /**

java.util.Arrays类详解

为实现数组的排序和查找.数组的比较和对数组填充元素,java.util.Arrays类包括各种各样的静态方法.这些方法都有对所有基本类型的重载方法. 可以使用sort方法对整个数组或部分数组进行排序.例如,下面的代码对数值型数组和字符型数组进行排序. double[] numbers = {6.0,4.4,1.9,2.9,3.4,3.5}; java.util.Arrays.sort(numbers);最后的结果是[1.9, 2.9, 3.4, 3.5, 4.4, 6.0]默认为升序排列 cha

Java中数组操作 java.util.Arrays 类常用方法的使用

任何一门编程语言,数组都是最重要和常用的数据结构之一,但不同的语言对数组的构造与处理是不尽相同的. Java中提供了java.util.Arrays 类能方便地操作数组,并且它提供的所有方法都是静态的.下面介绍一下Arrays类最常用的几个方法. 1.  数组排序 Arrays工具类提供了一个sort方法,只需要一行代码即可完成排序功能. 2.  数组转换为字符串 Arrays提供了一个toString方法,可以直接把一个数组转换为字符串,这样可以方便观察数组里的元素. //来源:公众号[时光与

java之Arrays类

1.Arrays类概述 针对数组进行操作的工具类. 提供了排序,查找等功能. 2.成员方法 public static String toString(int[] a) public static void sort(int[] a) public static int binarySearch(int[] a,int value) package com; import java.util.Arrays; /**  * Arrays类概述及常用方法  *  针对数组进行操作的工具类.  * 

【java】java.util.Arrays类常用方法

1 package Arrays类; 2 3 import java.util.Arrays; 4 5 public class TestArrays { 6 public static void main(String[] args) { 7 int[] a={1,9,3,5,7,8,2,6,0,4}; 8 System.out.println(Arrays.binarySearch(a, 9));//-11 9 Arrays.sort(a); 10 System.out.println(Ar

Java API —— Pattern类

正则表达式 写一个功能实现QQ号码的校验. import java.util.Scanner; public class RegexDemo01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入您的QQ号码:"); String str = sc.nextLine(); boolean f = queckQQ(str); Syst