Java教程

JAVA数组的相关介绍及Arrays相关内容介绍

本文主要是介绍JAVA数组的相关介绍及Arrays相关内容介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

JAVA数组的学习

引语:当存放相同类型的数据时,如果一个一个的存放会导致有过多的变量名,考虑使用一个数组变量来存放它们,并通过下标来访问存在数组中的每个成员

一维数组

为了生成可用的数组,我们不仅仅要声明数组(给予名称,成员类型的属性),还要为之分配内存空间,之后进行自动初始化或人工初始化

声明数组

方法如下:

数据类型 数组名 [ ] 或 数据类型 [ ] 数组名

分配空间

方法如下:

数组变量名 = new 数据类型 [数组长度]

也可以在定义数组的同时分配空间,例如:

int temp[] = new int[10];

注:数组一旦生成,就不允许再增加它的空间

数组的初始化

自动初始化:

数值型的初始值:0;

字符型的初始值:’\0’;

布尔类型的初始值:false;

类对象的初始值:null;

也可以主动地人工赋值通过下标一个一个的进行赋值,或是在声明数组后直接进行初始化,此时系统会自动确定数组的长度,自动给其分配空间,格式如下:

数据类型 数组名 [ ] = {值1,值2……,值n}

注:整体初始化是可以的,但不可整体赋值,如:

char s[ ] = new char[5];

s[ ] = {'a','b','c','d','e'} ;

访问数组

通过下标进行访问,方法如下:

数组名 [下标]

二维数组

如何理解多维数组

从二维数组讲起,例如:

int temp [] [] = new int [2] [3];

可以理解为生成了两行三列的数组,但更好理解且通用的方式是数组套数组的形式,就像这个例子一样,先生成长度为2的数组,再在每个数组中生成长度为3的数组,就像分叉的树枝一样

数组的常用方法

如何获取数组长度

数组名.length

如何更简单的遍历一个数组

使用for……each语句,例如:

//已将数组初始化或赋值

for(int e : a){
sum = sum+e;
}

该程序中的冒号“:”表示in的意思,for(int e : a)就是 for each int e in a,即“对于数组a中的每个整数e”。通过定义一个整数变量e表示数组中的每个元素。

打印一个数组

除了使用System.out.println()等类似方法之外,还有display(数组名),用于一下展示数组的全貌,中间用空格隔开,输出完毕时换行

Arrays类

Arrays类及基本使用

为了更方便的操作数组,java在包java.util定义了个Arrays的类,该类包含了几个用static修饰的静态方法

  • 使用import java.util.Arrays;导入该类;
  • 使用Arrays.方法名(数组)操作数组。

Arrays 类常用方法

方法名用法
toString 方法该方法主要返回数组元素的字符串形式
equals方法比较两个数组内容是否相等
fill 方法该方法主要用于替换数组中的元素
sort 方法该方法主要用于给数组元素排序
copyOf 方法该方法主要用于复制数组
copyOfRange 方法该方法主要用于复制数组,需要指定起始位置
binarySearch 方法该方法主要用于查找指定元素索引值
compare方法按字典顺序比较两数组

fill 方法详细介绍

fill 方法用来替换数组中的元素。它既可以直接替换数组中所有元素,也可以通过指定索引范围来替换部分元素。

直接替换数组中所有元素:

fill(arr, value)

参数说明:

  • 第一个参数(arr)为数组;
  • 第二个参数(value)为替换值。

示例:把数组中所有元素替换成 8。

 public static void main(String[] args) {        
 int [] arr={2,3,4,8,-2,0,-43,88};        
 Arrays.fill(arr,8);     // 使用fill方法把数组中所有值替换成8        System.out.println(Arrays.toString(arr));     // 打印新数组中的值    
 }

执行结果:

[8, 8, 8, 8, 8, 8, 8, 8]

替换部分元素

fill(arr, fromIndex,toIndex, value)

参数说明:

  • 第一个参数(arr)为数组;
  • 第二个参数(fromIndex)为数组中需要被替换的起始索引值(包含);
  • 第三个参数(toIndex)为数组中需要被替换的结束索引值(不包含);
  • 第四个参数(value)为替换值。

示例:把数组中部分元素替换成 8。

 public static void main(String[] args) {        
 // 请在Begin-End间编写代码        
 /********** Begin **********/        
 int [] arr={2,3,4,8,-2,0,-43,88};        
 Arrays.fill(arr,1,5,8);     // 使用fill方法把数组中部分值替换成8        System.out.println(Arrays.toString(arr));     // 打印新数组中的值        /********** End **********/    }

执行结果:

[2, 8, 8, 8, 8, 0, -43, 88]

sort 方法详细介绍

sort 方法用于给数组元素排序,默认排序方式为升序。

示例:

    public static void main(String[] args) {        
    int [] arr={8,2,7,84,12,1,786,92,34};     // 定义原数组        Arrays.sort(arr);     // 对数组元素排序        System.out.print(Arrays.toString(arr));     // 打印数组    
    }

执行结果:

[1, 2, 7, 8, 12, 34, 84, 92, 786]

copyOf 方法和 copyOfRange 方法详细介绍

copyOf 方法和 copyOfRange 方法都用于复制数组,其中 copyOfRange 方法需要指定起始位置。 示例:

public static void main(String[] args) {        
int [] arr={8,2,7,84,12,1,786,92,34};     // 定义原数组        
int[] ints = Arrays.copyOf(arr, 4);// 复制数组,第二个参数指定新数组长度         
// 复制数组,当指定新数组长度大于原数组时,会填充默认值        
int[] ints1=Arrays.copyOf(arr,10);           System.out.println(Arrays.toString(ints));     // 打印数组             System.out.print(Arrays.toString(ints1));     // 打印数组        
int[] ints2 = Arrays.copyOfRange(arr, 2, 4);     
// 复制数组,第二、三个参数指定索引值        
// 复制数组,当指定新数组长度大于原数组时,会填充默认值        
int[] ints3 = Arrays.copyOfRange(arr, 0, 10);             System.out.println(Arrays.toString(ints2));     // 打印数组        System.out.print(Arrays.toString(ints3));     // 打印数组    
}

执行结果:

[8, 2, 7, 84]
[8, 2, 7, 84, 12, 1, 786, 92, 34, 0]
[7, 84]
[8, 2, 7, 84, 12, 1, 786, 92, 34, 0]

binarySearch 方法

binarySearch 方法用于查找指定元素索引值。因为该方法使用的是二分法查找,所以在调用该方法之前,必须先调用 sort() 方法进行排序,如果数组没有排序,那么结果是不确定的。

示例:

 public static void main(String[] args) {        
 int [] arr={8,6,84,12,3,786,7,34};     // 定义原数组        
 int i = Arrays.binarySearch(arr, 7);     // 未对数组排序,直接查找元素               System.out.println(i);     // 打印索引值       
 Arrays.sort(arr);     // 对原数组排序        System.out.println(Arrays.toString(arr));     // 打印排序后的数组       
 int x = Arrays.binarySearch(arr, -2);     // 排序后查找数组中不存在的元素,不存在则会输出-1       
 int y = Arrays.binarySearch(arr, 7);     // 排序后查找数组中存在的元素        System.out.println(x);     // 打印索引值       
 System.out.print(y);     // 打印索引值   
 }

执行结果:

-3[3, 6, 7, 8, 12, 34, 84, 786]-12

compare方法和equals方法的使用

两方法的常用使用一致,compare(数组1,数组2),equals(数组1,数组2),前者是根据字典逐一比较数组中的元素,并返回布尔值,而后者则是比较两数组中的内容是否相同,并返回布尔值,当然还有“==”的方法,此时比较的不仅仅是两数组中的内容是否相同还要比较两数组的地址是否相同,据此返回布尔值

具体方法的详细使用,需参看 JDK 11 API java中文帮助文档

这篇关于JAVA数组的相关介绍及Arrays相关内容介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!