Java中的System、Arrays类

System类:位于Java.lang包中,表示当前Java程序运行平台。

        System类中的构造方法是private,所以无法通过new实例化对象,无法得到该类的对象。

        系统级的属性和控制方法都在该类的内部。

System中的静态成员变量:

        PrintStream Out:标准输出流,接收准备输出的数据

                方法:System.our.println()

        InputStream In:标准输入流,准备提供输入数据

                方法:System.in()

        PrintStream err:标准错误输出流,输出错误信息。

System类中的方法:

        exit:退出当前程序 (0表示一个状态)

System.exit(0);

        arraycopy:复制数组元素

/** arraycopy方法中参数说明:
    * Object src:源数组
    * int  srcPos:从源数组的哪个位置开始拷贝
    * Object dest:目标数组
    * int destPos:拷贝到目标数组的哪个位置
    * int length:拷贝多少个元素
    public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length)

 */
int[] src = { 1, 2, 3, 4, 5 };
int[] desc = new int[4]; // 初始时,desc数组中存放的是[0, 0, 0, 0]
System.arraycopy(src, 1, desc, 1, 3);
System.out.println(desc); // [0, 2, 3, 4]

        currentTimeMillis():返回当前计算机时间,格式是当前时间距离1970年1月1日 0时0分0秒的毫秒差。

                一般使用该方法,测量程序的执行时间。

long start = System.currentTimeMillis();
for (int i = 1; i <= 1000000; i++) {
    int temp = 0;
}
long end = System.currentTimeMillis();
long time = end - start; // 时间差
System.out.println(time); // for循环这段程序的执行时间

        gc():垃圾回收机制。

                请求系统进行垃圾回收,完成内存垃圾清理。(根据系统中垃圾回收算法及系统执行情况决定是否立即进行回收)

System.gc();

Arrays:工具类,用于管理和操作数组

        Arrays类中的方法通过static修饰,都是静态方法,因此可以通过类名直接调用:Arrays.xxx.

        toString():返回数组的字符串表示

int[] arr = { 0, 1, 2, 3 };
System.out.println(Arrays.toString(arr)); // [0, 1, 2, 3]

        binarySearch():二叉树搜索法查找数组元素

                使用binarySearch方法查找元素,要求数组必须是有序的(从小到大、从大到小)

                binarySearch()方法实现了重载。

                        int binarySearch(type[] array, type key):在array数组中查找key,返回索引

                        int binarySearch(type[] array, int fromIndex, int toIndex, type key):在array数组fromIndex到toIndex的位置查找key,返回索引

                        如果数组中不存在key,返回  -(a应该在的位置+1)

int[] arr = { 1, 12, 23, 34, 45, 56, 67, 78, 89, 90 };

System.out.println(Arrays.binarySearch(arr, 23)); // 2

System.out.println(Arrays.binarySearch(arr, 25)); // -4

        copeOf():拷贝数组元素

                type[] copeOf(type[] original, int length):从original数组中拷贝length个元素到新数组

                        如果length<0,则系统抛出异常;

                        如果length>original.length,则使用null填充剩下的空间

int[] arr = { 11, 22, 33, 44, 55 };

int[] arr1 = Arrays.copeOf(arr, 5);
System.out.println(arr1); // [11, 22, 33, 44, 55]

int[] arr2 = Arrays.copeOf(arr, 7);
System.out.println(arr2); // [11, 22, 33, 44, 55, null, null]

        fill():数组填充

                fill(type[] arr, type value):使用value填充到数组arr中

int[] arr = { 0, 1 , 2 };

Arrays.fill(arr, 99);
System.out.println(arr); // [99, 99, 99]

        equals():比较数组是否相等

int[] arr = {-1, 8, 25, 16};

int[] arr1 = {-1, 8, 25, 16};
boolean equals1 = Arrays.equals(arr, arr1);
System.out.println(equals1); // true

int[] arr2 = {-1, 8, 25, 16, 0};
boolean equals2 = Arrays.equals(arr, arr2);
System.out.println(equals2); // false

        alist():将数组转化为list集合

List asList = Arrays.alist(1, 2, 3, 4);

System.out.println(asList); // [1, 2, 3, 4]
System.out.println("asList的运行类型" + asList.getClass()); // java.util.Arrays$ArrayList

        sort():对数组内容进行排序

                sort(type[] arr)、sort(type[] arr, int fromIndex, int toIndex):自然排序(从大到小)

        利用sort方法实现定制排序:public static <T> void sort(T[] a, Comparator<? super T> c)

                方法中第一个参数:需要进行排序的数组;第二个参数:匿名内部类

String[] arr = {"kxg", "kxy", "kxh", "kfb", "lhy"};

// 对arr进行排序
Arrays.sort(arr, new Comparator() {
    @Override
    public int compare(Object o1, Object o2) {
        String str1 = (String)o1;
        String str2 = (String)o2;
        return str1.compareTo(str2);
    }
});
for (String str:array) {
    System.out.println(str);
}

                sort方法可以对所有数组按照一定顺序进行比较。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值