Arrays类

Arrays类

概述:
是一个工具包类,java.util.Arrays。此类只要是用来操作数组,里面提供了很多的操作数组的API方法,如排序和搜索功能。其中所有的方法均为静态方法,调用起来非常简单。
操作数组
1.public static String toString(int[ ] a)
返回指定数组内容的字符串表现形式

public static void main(String[] args){
  //初始化一个int类型的数组,静态初始化,只指定内容,长度系统推定
  int[] arr={1,2,3,5,56,123};
  //打印数组
  System.out.println(arr);//此时这是一个地址值
  //把数组内容转换成字符串
  String str=Arrays.toString(arr);
  //打印字符串,输出数组内容
  System.out.println(str);//[1,2,3,5,56,123] 内容数组不变
  
}

2.public static void sort(int[ ] arr)
对指定的int数组按照升序排序

public static void main(String[] args){
    int[]={123,56,5,3,2,1};
    System.out.println(Arrays.toString(arr));//排序前 [123,56,5,3,2,1]
   //升序排列
   Arrays.sort(arr);
   System.out.println(Arrays.toString(arr));//[1,2,3,5,56,123] 
}

练习:将一个任意字符串中的所有字符按照升序排列,倒序打印输从

public class ArrayDemo{
  public static void main(String[] args){
    String str="dsadsadsafdxvcx";
    char[] c=str.toCharArray();
    //升序排列
    Arrays.cort(c);
    //遍历
     for(int i=c.length-1;i>0;i--){
     System.out.print(c[i]+" ");//x x v s s s f d d d d c a a 
            }
   }
}

3.public static int binarySearch(int[] arr,int key)
使用二分搜索法来搜查指定的int类类数组,获得指定的值

public static void main(String[] args){

   //定义一个int类型数组
   int[] arr={10,20,5,30,40,50245222};
   //搜索5这个数在arr中的索引
   int index=Arrays.binarySearch(arr,5);
   System.out.println("5的索引是"+index);
   //5的索引是-1

}

很明显,这个结果是不正确的,因为使用binarySearch()方法,数组必须是有序的【升序】,需要先排序,得到的索引值是排序之后的新的数组的索引值,如果没有找到对应的元素值,返回一个随机负值

public static void main(String[] args){

   //定义一个int类型数组
   int[] arr={10,20,5,30,50,1,894,40,50};
    Arrays.sort(arr);//[1,5,10,20,30,40,50,50,894]
   //搜索5这个数在arr中的索引
   int index=Arrays.binarySearch(arr,5);
   System.out.println("5的索引是"+index);
   //5的索引是6

}

4.public static void fill(int [ ]a, int val)
将指定的int值分配给指定int类型的每个元素

public static void main(String[] args){
  //定义一个int类型的数组
   int[] arr={10,20,5,30,40,50245222};
    //想要把100 元素值分配给arr数组
    Arrays.fill(arr,100);
    //输出
     System.out.println(Arrays.toString(arr);
//[100, 100, 100, 100, 100, 100, 100, 100, 100]
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值