java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > JavaSE一维数组和二维数组

JavaSE一维数组和二维数组用法详解

作者:逸狼

数组存储同一种数据类型多个元素的集合,既可以存储基本数据类型,也可以存储引用数据类型,这篇文章主要给大家介绍了关于JavaSE一维数组和二维数组用法的相关资料,需要的朋友可以参考下

一维数组

数组:可以看成是相同类型元素的一个集合。

基本语法

T[] 数组名 = new T[N]; 

初始化

int[] array={1,2,3,4,5};
int []arr1=new int[]{1,3,4};
int []aa=new int[19];

遍历和打印

三种方法

        public static void main(String[] args) {
            int[] array={1,2,3,4,5};
            System.out.println(array.length);//求数组长度
            System.out.println(array[2]);//通过下标访问数组元素

            //遍历打印数组
            for (int i = 0; i < array.length; i++) {
                System.out.print(array[i]+" ");
            }

            //for each循环 遍历数组,把每一个值放入x中,获取不到下标
            for (int x:array) {
                System.out.print(x+" ");
            }

            //借助Java的原生的方法   
            String ret= Arrays.toString(array);//将数组元素以字符串的形式输出
            System.out.println(ret);

数组是引用型变量

引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该 地址,引用变量便可以去操作对象。

JVM内存分布

基本类型变量与引用类型变量的区别

null

可以将数组置为null

int[] arr = null;

null 的作用类似于 C 语言中的 NULL (空指针), 都是表示一个无效的内存位置. 因此不能对这个内存进行任何读写操 作. 一旦尝试读写, 就会抛出 NullPointerException.

注意: Java 中并没有约定 null 和 0 号地址的内存有任何关联

数组传参和返回

本质上还是传值调用

例如想要实现将原数组的每一位元素都扩大两倍

有两种实现方法

    //无返回值
    public static void func(int[]array1){
        for (int i = 0; i < array1.length; i++) {
            array1[i]= array1[i]*2;//将每个数字扩大2倍
        }
    }

    //数组作为返回值
    public static int[] func2(int[]array1){
        int[]tmp=new int[array1.length];
        for (int i = 0; i < array1.length; i++) {
            tmp[i]=array1[i]*2;
        }
        return tmp;//Java中数组可以是返回值
    }

    public static void main(String[] args) {
        int[] array={1,2,4,5};
        int[] retArray=func2(array);//本质上还是传值调用
        String ret=Arrays.toString(retArray);
        System.out.println(ret);
    }

总结

所谓的 "引用" 本质上只是存了一个地址. Java 将数组设定成引用类型, 这样的话后续进行数组参数传参, 其实 只是将数组的地址传入到函数形参中. 这样可以避免对整个数组的拷贝(数组可能比较长, 那么拷贝开销就会很大).

二维数组

基本语法

数据类型[][] 数组名称 = new 数据类型 [行数][列数] { 初始化数据 };

初始化

有三种

        //二维数组
        int[][]array={{1,3,4,5},{6,6,4,7}};//是第二种的简化,常用
        int[][]array2=new int[][]{{1,3,4,5},{6,6,4,7}};
        int[][]array3=new int[2][4];//全部初始化为0

遍历和打印

有两种

 public static void main(String[] args) {
        //二维数组
        int[][]array={{1,3,4,5},{6,6,4,7}};
//第一种,要数行和列的个数
        for (int i = 0; i < 2; i++) {
            for (int j = 0; j < 4; j++) {
                System.out.print(array[i][j]+" ");
            }
            System.out.println();
        }
        System.out.println("#########");
        //另一种不用数二维数组的个数的方法
        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();
        }
    }

结果

总结 

到此这篇关于JavaSE一维数组和二维数组用法详解的文章就介绍到这了,更多相关JavaSE一维数组和二维数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文