java.util.Arrays

原创作品转载请注明出处


/*
 * Arrays类包含了操作数组的各种方法,没有提供构造方法
 * 所有的成员方法都是static的,可以通过类名访问
 * java.util.Arrays直接继承java.lang.Object
 * 但是注意  public static String toString(int[] a)
 *       public static String toString(double[] a)等
 * 并不是重写了Object里的public String toString() 
 * 
 * public static String toString(Object[] a)
 * public static void sort(Object[] a)
 *
 * Arrays.sort()   有int[] float[]  double[]   而不是都使用 Object   
 * 是对于数值比较的时候避免转型,提高效率
 * 
 * 对于Object类型的数组在比较的时候用到了comparable接口强制转换后通过compareTo进行比较
 *
 *
 */

import java.util.Arrays;
public class DemoArrays {
    public static void main(String[] args) {
        int[] a = {1,23,4,45,4};
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }
}
output:
[1, 23, 4, 45, 4]
[1, 4, 4, 23, 45]
public static String toString(Object[] a) {
    if (a == null)
        return "null";

    int iMax = a.length - 1;
    if (iMax == -1)
        return "[]";

    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; ; i++) {
        b.append(String.valueOf(a[i]));  //用到了String.valueOf()
        if (i == iMax)
            return b.append(']').toString();
        b.append(", ");
    }
}
//valueOf就是调用了对象的toString()
public static String valueOf(Object obj) {
    return (obj == null) ? "null" : obj.toString();
}

Arrays类中只提供了一个无参的构造方法,并且由private修饰,外界无法使用,并且API中也看不到任何构造方法。

// Suppresses default constructor, ensuring non-instantiability.
// 抑制默认构造函数,确保不可以实例化
    private Arrays() {}

Arrays类的这种设计是常用的工具类的设计思想:
构造方法私有,外界无法创建对象;成员都用static修饰,让外界通过类名直接访问。
Math,Collection等类也是如此。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,839评论 18 399
  • Java 语言支持的类型分为两类:基本类型和引用类型。整型(byte 1, short 2, int 4, lon...
    xiaogmail阅读 1,391评论 0 10
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,305评论 0 16
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 1,123评论 0 4
  • Arrays类是一个实现对数组操作的工具类,包含了各种各样的方法(类似与Collections),可以实现数组的排...
    __0_0__阅读 379评论 0 0