JAVA基础(Arrays类)

1,Arrays类概述

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

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

 

2,成员方法

【1】 数组转字符串      

  • public static String toString(int[] a) 

 

       //toString的源码

        public static String toString(int[] a) {

                if (a == null)                                //如果传入的数组是null

                    return "null";                            //返回null

                int iMax = a.length - 1;                    //iMax最大索引

                if (iMax == -1)                                //如果数组中没有元素

                    return "[]";                            //返回[]

        

                StringBuilder b = new StringBuilder();        //线程不安全,效率高

                b.append('[');                                //将[添加到字符串缓冲区中

                for (int i = 0; ; i++) {                    //遍历数组,判断语句没有写默认是true

                    b.append(a[i]);                            //把第一个元素添加进字符串缓冲区

                    if (i == iMax)                            //如果索引等于了最大索引值

                        return b.append(']').toString();    //将]添加到字符串缓冲区,在转换成字符串并返回

                    b.append(", ");                            //如果不等于最大索引就将, 添加到缓冲区

                }

            }

【2】数组排序            

  • public static void sort(int[] a) 

【3】 二分查找            

  • public static int binarySearch(int[] a,int key)
    
            //binarySearch0源码
    
             private static int binarySearch0(int[] a, int fromIndex, int toIndex,
    
                                         int key) {
    
                    int low = fromIndex;                //最小索引0
    
                    int high = toIndex - 1;                //最大索引数组长度-1
    
            
    
                    while (low <= high) {                //最小索引小于等于最大索引可以循环判断
    
                        int mid = (low + high) >>> 1;    //求出中间索引值,(最小+最大)/2
    
                        int midVal = a[mid];            //通过中间索引获取中间值
    
            
    
                        if (midVal < key)                //中间索引对应的值小于查找的值
    
                            low = mid + 1;                //最小索引变化
    
                        else if (midVal > key)            //中间索引对应的值大于查找的值
    
                            high = mid - 1;                //最大索引变化
    
                        else
    
                            return mid; // key found    //找到了
    
                    }
    
                    return -(low + 1);  // key not found.//-插入点 - 1
    
                }

     

3,实现代码

import java.util.Arrays;

public class Demo3_Arrays {



    public static void main(String[] args) {

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

        System.out.println(Arrays.toString(arr));            //数组转字符串

        

        Arrays.sort(arr);                                    //排序

        System.out.println(Arrays.toString(arr));

        

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

        System.out.println(Arrays.binarySearch(arr2, 22));

        System.out.println(Arrays.binarySearch(arr2, 66));

        System.out.println(Arrays.binarySearch(arr2, 9));    //-插入点-1

    }

}



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴帅_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值