Java中数组怎么定义使用

Java中数组怎么定义使用

这篇文章主要为大家展示了“Java中数组怎么定义使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中数组怎么定义使用”这篇文章吧。

    一、数组的基本用法

    1.什么是数组

    数组:存储一组相同数据类型的数据的集合。

    2.定义数组

    int[] :int类型数组

    double[] :double类型数组

    通过类型就可以定义变量,比如:

    int[] array,array就是这个类型的变量,这个变量是存储一组相同数据的变量。

    三种数组定义的方式:

    第一种:

    int[] array = {1,2,3,4,5,6};定义一个数组且初始化

    虽然没写new,但实际上也是一个对象

    注意事项:

    int[10] array ={1,2,3,4,5,6};写法错误,int[] 属于类型,中括号里面不能加任何的数字,相当于在这里破坏了它的类型。

    第二种:

    int[] array2 = new int[3];

    定义数组未初始化

    第三种:

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

    定义且初始化

    三种当中用的最多的就是第一种

    3.数组的使用

    获取数组长度:

    Java里面可以直接通过数组名array.length求出当前数组的长度

    访问数组元素:

    访问数组下标为4的元素

    越界访问数组元素:

    Java语言越界直接报错

    更改数组元素:

    通过数组名中括号的方式,不仅仅可以访问下标的内容,也可以往下标里面写一些数据

    打印数组:

    第一种:(for循环)

    第二种:(增强for循环,for each循环)

    for循环和for each循环的区别:

    for循环是可以拿到下标的,

    for each循环是拿不到下标的,更多的是用于集合中

    第三种:借助Java的操作数组工具类 Arrays

    二、数组作为方法的参数

    基本用法

    JVM简单介绍

    局部变量在内存中的储存:

    引用不指向对象写法:

    这个引用不指向任何的对象

    一个引用能不能同时指向多个对象吗?

    对于这个代码来说只能指向一个对象,存一个对象的地址。最终只保存了最后一个对象的地址

    数组作为方法的参数传递的过程:

    求解打印结果:

    前两种求解:

    fun2打印结果:

    分析例子:下图代表什么

    代表array2这个引用,指向了array1这个引用指向的对象。

    下图就代表了上面例子的意思:

    注意事项:

    引用指向引用这句话 是错误的,引用只能指向对象

    引用一定在栈上吗?

    不一定,一个变量在不在栈上,是你变量的性质决定的,如果你就是一个局部变量,一定是在栈上的。如果不是,例如,实例成员变量那就不一定就是在栈上的。

    三、数组练习题

    1.交换两个变量的值

    publicclassTestDemo{publicstaticvoidswap(int[]array){inttmp=array[0];array[0]=array[1];array[1]=tmp;}publicstaticvoidmain(String[]args){int[]array={10,20};System.out.println("交换前:"+array[0]+""+array[1]);swap(array);System.out.println("交换后:"+array[0]+""+array[1]);}

    打印结果:

    2.写一个方法, 将数组中的每个元素都 * 2

    /***在原来的数组上扩大2倍*@paramarray*/publicstaticvoidenlarge(int[]array){for(inti=0;i<array.length;i++){array[i]=array[i]*2;}}publicstaticvoidmain(String[]args){int[]array={1,2,3,4,5,6,7};enlarge(array);System.out.println(Arrays.toString(array));}

    打印结果:

    把原来数组扩大2倍的值放在一个新的数组中

    /***把原来数组扩大2倍的值放在一个新的数组中*@paramarray*@return*/publicstaticint[]func(int[]array){int[]ret=newint[array.length];for(inti=0;i<array.length;i++){ret[i]=array[i]*2;}returnret;}publicstaticvoidmain(String[]args){int[]array={1,2,3,4,5,6,7};int[]ret=func(array);System.out.println(Arrays.toString(ret));}

    3.模拟实现tostring函数

    publicstaticStringmyToString(int[]array){Stringstr="[";for(inti=0;i<array.length;i++){str=str+array[i];if(i!=array.length-1){str+=",";}}str=str+"]";returnstr;}publicstaticvoidmain(String[]args){int[]array={1,2,3,4,5,6,7};Stringstr=myToString(array);System.out.println(str);}

    打印结果:

    4.找数组中的最大元素

    publicstaticintmaxNum(int[]array){if(array==null)return-1;if(array.length==0)return-1;intmax=array[0];for(inti=1;i<array.length;i++){if(max<array[i]){max=array[i];}}returnmax;}publicstaticvoidmain(String[]args){int[]array={12,8,14,26,5,7,8};intmax=maxNum(array);System.out.println(max);}

    打印结果:

    5.查找数组中指定元素(顺序查找)

    publicstaticintfindNum(int[]array,intkey){for(inti=0;i<array.length;i++){if(array[i]==key){returni;}}return-1;}publicstaticvoidmain(String[]args){int[]array={2,4,5,6,11,7,8,9};System.out.println(findNum(array,7));}

    打印结果:

    6.查找数组中指定元素(二分查找)

    二分查找的必要条件是必须有序的数列publicstaticintbinarySearch(int[]array,intkey){intleft=0;intright=array.length-1;while(left<=right){intmid=(left+right)/2;if(array[mid]>key){right=mid-1;}elseif(array[mid]<key){left=left+1;}else{returnmid;}}return-1;}publicstaticvoidmain(String[]args){int[]array={12,14,15,16,18,23};System.out.println(binarySearch(array,15));}

    打印结果:

    以上是“Java中数组怎么定义使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

    发布于 2022-03-16 22:03:51
    收藏
    分享
    海报
    0 条评论
    50
    上一篇:CSS边框的宽度怎么指定 下一篇:CSS边框的颜色怎么设置
    目录

      0 条评论

      本站已关闭游客评论,请登录或者注册后再评论吧~

      忘记密码?

      图形验证码