Java初步语法(11)之二维数组(2)

Java初步语法(11)之二维数组

填充替换数组元素

数组元素的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成对任意类型的数组元素替换。

fill()方法有两种参数类型。下边为参数类型:

(1)      fill(int[] a,int value)

该方法可以将指定的int值分配给int型数组的每个元素。语法如下:

a: 要进行元素替换的数组。

value:要储存数组中所有元素的值。创建一维数组,并利用fill()方法填充数组元素,示例代码如下:

import java.util.Arrays;

public class gess {

 public static void main(String[] args) {

   int arr[]=new int[4];

  
Arrays.fill(arr, 8);

   for(int i=0;i<arr.length;i++) {

     
 System.out.println(arr[i]);

   }

       
}

 }

输出结果如下:

在这里插入图片描述

(2)  fill(int[]a,int fromIndex,int toIndex,int value)

该方法将指定的int值分配给int来型的数组指定范围中的每个元素。填充的范围从索引fromIndex(包括)一直到索引toIndex(不包括)。如果fromIndex=toIndex,则范围填充为空。

语法如下
fill(int[]a,int fromIndex,int toIndex,int value)

a:要进行填充的数组;

fromIndex:要使用指定值填充的第一个索引;

扫描二维码关注公众号,回复: 11585544 查看本文章

toIndex:要使用指定值填充的最后一个元素的索引(不包括这个索引对应的函数值);

value:要储存在数组所有元素中的值;

创建一维数组,通过fill方法替换数组元素,最后输出:

import
 java.util.Arrays;

public class gess {

 public static void main(String[] args) {

  int arr[]=new int[] {45,12,2,10};

  Arrays.fill(arr,2,3,8);

   for(int i=0;i<4;i++) {

      System.out.println(arr[i]);

   }

      
 }

 }

结果如下:

在这里插入图片描述

对数组进行排序

通过Arrays类的静态sort方法可以实现sort()方法可以实现对数组的排序。sort()方法提供了多种重载形式,可对任意类型的数组进行升序排序。语法如下:

 Arrays.sort(object)

object:进行排序的数组名称。

创建一维数组,并将其排序后输出,示例代码如下:

import java.util.Arrays;

public class gess {

 public static void main(String[] args) {

  int arr[]=new int[] {10,20,30,12};

  Arrays.sort(arr);;

  for(int i=0;i<arr.length;i++) {

      System.out.println(arr[i]);

  }

      
}

 }

运行结果如下:
在这里插入图片描述

上述事例是是对整形数组进行排序。Java中的String类型数组的排序算法是根据字典编排顺序排序的,因此数字排在数组前边,大写字母排在小写字母的前边。

复制数组:

Arrays类复制数组方法有两种:

(1) copyOf()方法:复制数组至指定长度

(2) copyOfRange()方法:将指定长度的数组复制到一个新数组中;

copyOf方法:

语法如下:

 copyOf(arr,int new)

arr:要进行复制的数组;

newlength:int型常量,指复制后新数组的长度。如果新数组的长度大于数组arr的长度,则用0填充(根据复制数组的类型来决定填充的值,整形数组用0填充,char型数组用null填充);如果复制后的数组长度小于数组arr的长度,则会从数组arr的第一个元素开始截取至满足新数组长度为止。

创建一维数组,实现将arr数组复制得到一个长度为5的新数组,实例代码如下:

import
 java.util.Arrays;

 public class gess {

 public static void main(String[] args) {

   int arr[]=new int[] {23,34,45};

   int newarr[] = Arrays.copyOf(arr, 5);

   for(int i=90;i<5;i++){

      System.out.println(newarr[i]);

   }

      
} 

 }

结果如下:

在这里插入图片描述

copyOfRange()方法:

语法如下:

copyOfRange(arr,int fromIndex,int toIndex)

arr:要进行复制的数组对象。

fromIndex:指定开始复制数组的索引位置。fromIndex必须在0至整个数组的长度之间。新数组包括索引是fromIndex的元素。

toIndex:要复制范围的最后索引位置。可大于数组arr的长度。新数组不包括索引是toIndex的元素。

创建一维数组,并将数组中索引位置是0~3的元素复制到新数组中,示例代码如下:

import java.util.Arrays;

 public class gess {

 public static void main(String[] args) {

  int arr[]=new int[] {12,23,12,23,34,45};

  int newarr[]=Arrays.copyOfRange(arr, 0, 3);

  for(int i=0;i<newarr.length;i++) {

    
System.out.println(newarr[i]);

  }

      
}

 }

结果如下:

在这里插入图片描述

数组查询:

Arrays类的binarySearch()方法,可使用二分法来搜索指定数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要。binarySearch()方法有两种参数类型。

(1)binarySearch(Object[],Object key)

语法如下:

 binarySearch(Object[] a,Object key)

a:要搜索的数组。

key:要搜索的值。

如果key包含在数组中,则返回搜索值的索引:否则返回-1或“-”(插入点)。插入点:搜索键将要插入数组的那一点,即第一个大于此键的元素索引。

创建一维数组,实现查找元素4在数组中的索引位置:

import  java.util.Arrays;

public class gess {

 public static void main(String[] args) {

  int searcharr[]= new int[]{1,4,3,2,5};

 
Arrays.sort(searcharr);

  int index=Arrays.binarySearch(searcharr, 4);

 
System.out.println(index);

  }

 }

结果如下:

在这里插入图片描述

(1) binarySearch(object[],int fromIndex,int toIndex,object
key)

该方法在指定的范围内检索某一元素。

语法如下:

 binarySearch(object[] a,int fromIndex,int  toIndex,Object key)

a:要进行检索的数组

fromIndex:指定开始的索引

toIndex:指定结束的指引

key:要搜索的元素。

在使用该方法之前同样要对数组进行排序,来获得准确的索引值。如果要搜索的元素key在指定的范围内,则返回搜索键的索引:否则返回-1或者-(插入点)。如果范围中的所有元素都小于指定的键,则为toIndex。

注意:如果指定的范围大于或者等于数组的长度,则会报异常。

创建一个数组,实现查找数组在指定范围的数组str中的索引位置,实例代码如下:

import java.util.Arrays;

public class gess {

 public static void main(String[] args) {

   
String str[]=new String[] {"ab","cd","ef","yz"};

   
Arrays.sort(str);

    int index=Arrays.binarySearch(str,0,2,"cd");

     System.out.println(index);

  }

  }

本文章是博主在网上购买的清华大学出版社出版的《Java从入门到精通》第五版自学Java以笔记形式发表,其中博文大多数内容参考次数,为表对原书作者的尊敬,在此推广此书,有兴趣学Java的小伙伴们可以了解一下~

猜你喜欢

转载自blog.csdn.net/kuu_ga/article/details/107883778