关于Arrays工具的常用方法

1.Arrays.sort()

一种快速排序的方法,效率相当高,例如在冒泡排序中,用截取时间来估计

long t1=System.currentTimeMillis();
int[] s=new int[10000];
for (int i = 0; i < s.length; i++) {
//            s[i]=(int) (Math.random()*1000000);
//        }
for (int i = 0; i < s.length-1; i++) {//冒泡排序:
//            for (int j = 0; j < s.length-1-i; j++) {
//                if(s[j]>s[j+1]){//交换位置
//                    int temp;
//                    temp=s[j];
//                    s[j]=s[j+1];
//                    s[j+1]=temp;
//                }
//            }
//        }

long t2=System.currentTimeMillis();

System.out.println(t2-t1);//大概运算时间为14ms

而快速排序时间为3ms

2.Arrays.binarySearch();

二分查找:在数组两端定义头指针h与尾指针l,关键字key就为(h+l)/2,比较关键字与目标元素的大小关系,将h或l赋给key,重复操作可以查询到目标元素。

int low= fromIndex;
int high = toIndex - 1;

while (low <= high) {
    int mid = (low + high) >>> 1;
    int midVal = a[mid];

    if (midVal < key)
        low = mid + 1;
    else if (midVal > key)
        high = mid - 1;
    else
        return mid; 
}

3.Arrays.copyof();

含两个参数,参数1:源数组,参数2:复制的长度

当复制长度超过源数组长度时,超出部分都为0

4.Arrays.copyofRange();

含三个参数,参数1:源数组,参数2:源数组开始截取位置,参数3:源数组结束截取位置(不包含此端点).

5.Arrays.toString();

将数组转换为字符串并打印出来

6.Arrays.equals();

比较两数组的值是否相同并返回一个布尔值,而”==“的是比较指向相同的地址位置

7.Arrays.compare();

将两数组的值,一 一对应比较,返回值可以理解为x-y,即相同返回0,前<后返回负数,前>后返回正数

8.System.arraycopy();

参数1: 源数组   参数2:源数组开始截取位置   参数3:目标数组的接收位置 参数4:截取长度

9.Arrays.fill();

将目标数组中元素重新填充,需要是同类型的填充值

例如:int[] s=new int[]{15,25,35,45};

double[] x=new double[]{1.0,2.1,3.2,4.3};

Arrays.fill(s,1);

System.out.println(Arrays.toString(s));//  输出为【1,1,1,1】

Arrays.fill(x,1.1);

System.out.println(Arrays.toString(x));//  输出为【1.1,1.1,1.1,1.1】

或者 以fromindex  toindex  val的形式给数组的某一段赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值