Java数组

2017-12-02  本文已影响0人  Jason_M_Ho

数组是一个变量,也是一种引用数据类型,存储的是相同数据类型的一组数据。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 = {80,85,90,86,100};
int[] socres = new int[]{80,85,90,86,100};

遍历数组

示例:

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(元素类型 变量名:数组名){......};

示例:

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));
    }
}
上一篇 下一篇

猜你喜欢

热点阅读