Java数组

来源:互联网 发布:java汽车租赁系统代码 编辑:程序博客网 时间:2024/06/07 08:02

数组是一个变量,也是一种引用数据类型,存储的是相同数据类型的一组数据。Java会为数组在内存中分配一段连续的内存空间。

定义数组

有两种方式

数据类型[ ]  数组名 = new 数据类型[数组长度];  //Java推荐的写法数据类型  数组名[ ] = new 数据类型[数组长度];  //传统C语言的写法

示例:

int[] socres = new int[3];String cities[] = new String[6];

数组元素的表示与赋值

数组中每一个元素都有一个下标,用来表示此元素在数组中的位置,第一个元素的下标为0,依次递增,数组中的每个元素都可以通过下标来访问。
语法格式:

数组名[下标] = 值;

示例:

int[] scores = new int[3];scores[0] = 60;scores[1] = 80;scores[2] = 90;

数组赋值的时候不能直接给数组赋值,只能给数组中的元素赋值。赋值只有两种方式,一种是通过下标赋值,一种是在定义的时候赋值

初始化数组

初始化就是在定义的数组的时候一并完成赋值操作
语法格式如下:

数据类型[ ]  数组名 = {值1,值2,值3,......,值n}; 数据类型  数组名[ ] = new 数据类型[]{值1,值2,值3,......,值n};

示例:

int[] socres = {80859086100};int[] socres = new int[]{80859086100};

遍历数组

  • 方法一:普通for循环遍历数组,通过数组元素的下标进行遍历访问

示例:

public class Demo {    public static void main(String[] args) {        int[] scores = {60,75,80,90,85,78};        for(int i = 0; i < scores.length; i++){            System.out.println("socres["+i+"] = "+scores[i]);        }    }}
  • 方法二:增强for循环遍历数组,通过迭代器完成对数组元素的访问

增强for循环专门用来实现对数组和集合中的数据的访问
语法格式:

for(元素类型 变量名:数组名){......};

示例:

public class Demo {    public static void main(String[] args) {        int[] scores = {60,75,80,90,85,78};        for(int i : scores){            System.out.println("socres中的元素依次为"+i);        }    }}

二维数组

二维数组实际上是一个一维数组,它的每个元素都是一个一维的数组。二维数组就是存放数组的数组。
* 定义一个二维数组

int[][] socres = new int[3][30];
  • 初始化
int[][] scores = new int{{80,90,78,98,85},{79,89,87},{60}};int[][] scores = {{80,90,78,98,85},{79,89,87},{60}};
  • 遍历二维数组
public class Demo {      public static void main(String[] args) {        int[][] array = {{80,87,90,78},{85,88,95},{68,85,90}};        for(int i = 0; i < array.length; i++){            for(int j = 0; j < array[i].length; j++){                System.out.print(array[i][j]+" ");  //循环输出每一个元素            }            System.out.println();        }    }}

Arrays类

Arrays类是JDK提供的专门用于操作数组的工具类,此类提供了一系列的方法来操作数组,如:排序、复制、比较、填充等。这些方法都是静态方法,通过类名直接调用。
常用方法:

返回值类型 方法 说明 boolean equals(array1,array2) 比较两个数组是否相等 void sort(array) 对数组元素升序排列 String toString(array) 将一个数组转成一个字符串 void fill(array,val) 把数组中的所有元素都赋值成val 与array数据类型一致 copyOf(array,length) 把数组复制成一个长度为length的新数组 int binarySearch(array,val) 查询元素val在已经升序排列的数组中的下标位置

示例:

public class Demo {    public static void main(String[] args) {        int[] array1 = {80,87,90,78};        int[] array2 = {80,87,90,78};        int[] array3 = {80,87,90};        System.out.println(Arrays.equals(array1, array2));         System.out.println(Arrays.equals(array1, array3));        Arrays.sort(array1);        for(int m:array1){            System.out.print(m+"\t");        }        Arrays.fill(array1, 60);        System.out.println(Arrays.toString(array1));        int[] array4 = Arrays.copyOf(array1, 8);        System.out.println(Arrays.toString(array4));        Arrays.sort(array2);        System.out.println(Arrays.binarySearch(array2, 90));    }}