zoukankan      html  css  js  c++  java
  • JAVA基础——数组详解

    学习JAVA中数组的使用

    一、什么是数组?

      问:编写代码保存 4 名学生的考试成绩。

      答:简单啊,定义 4 个变量呗

      问:那“计算全年级 400 名学生的考试成绩”,肿么办

      答: 。。。。。。。

      数组,就可以帮助你妥妥的解决问题啦!!

      数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩。

        

      数组中的元素都可以通过下标来访问,下标从 0 开始。例如,可以通过 scores[0] 获取数组中的第一个元素 76 ,scores[2] 就可以取到第三个元素 92 啦!

      ps:数组名(不带下标)里的值为此数组的存放地址。(后续指针的学习将会更加深入理解这个作用)

    二、使用java中的数组

      (一)声明和简单操作数组  

      由于java是面向对象的语言,所以无论你要使用哪个操作都必须以一个对象来进行,数组也不例外,要使用数组必须先声明数组对象然后再给它分配空间(生成一个有实例的对象)才能正常使用。  

      Java 中操作数组只需要四个步骤

      1、 声明数组

      语法:  数据类型[ ] 数组名;

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

      其中,数组名可以是任意合法的变量名,如:

      

      2、 分配空间

      简单地说,就是指定数组中最多可存储多少个元素

      语法:  数组名 = new  数据类型 [ 数组长度 ];

      其中,数组长度就是数组中能存放元素的个数,如:

      

      ps:在我们日常使用过程中通常将上述两个步骤合并,在声明数组的同时为它分配空间,如:

      

      3、 赋值

      分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的,例如向 scores 数组中存放学生成绩:

      

      4、 处理数组中数据

      我们可以对赋值后的数组进行操作和处理,如获取并输出数组中元素的值:

      

      以上补充说明:

      在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值(就是上述的1、2、3步骤)合并完成,如:

      其中数组的长度由赋值的个数决定

      它等价于:

      (注意:数组长度必须为空!!)


      (二)使用循环操作 Java 中的数组

      实际开发中我们经常使用循环控制数组成员的操作。如:

      

      运行结果:

      

      其中,  数组名.length  用于获取数组的长度

      需要注意的“小毛病”:

      1、 数组下标从 0 开始。因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素

      2、 数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错。如:

      

      上面错误信息的意思是数组下标超过范围,即数组访问越界。在上面的代码中创建一个长度为 2 的数组,因此数组下标范围是 0 到 1 ,而程序中下标出现了 2 ,即 scores[2] ,超过了范围,造成数组访问越界。


      (三)使用 Arrays 类操作 Java 中的数组

      Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等。

      Arrays 中常用的方法:

      1、 排序

      语法:  Arrays.sort(数组名);

      可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列),如:

      

      运行结果:

      

      补充说明:Arrays.sort(hobbys);如果hobbys中元素为字符串,则比较字母的顺序!!!即哪个元素首字母靠前就排在前面,相同则继续比较次字母,依次。

           Arrays.sort()对于数字从小到大、对于字母按照先后顺序。

      2、 将数组转换为字符串

      语法:  Arrays.toString(数组名);

      可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起,多个元素之间使用逗号和空格隔开,如:

        

      运行结果为:  输出数组nums中的元素:[25,7,126,53,14,86]

      ps:toString( )函数是java自带的一个输出字符串(转换为字符串)的函数,很多自带的类都有这个函数,我们可以通过重写它的方法来实现我们自定义的输出字符串的样式,默认的输出样式就如例子一样是带[ ]和用,隔开。

      Arrays 类还提供了许多其他方法来操作数组此处就不一一列举啦,各位小伙伴们可以在我下一篇文章里查看(转载其他博主的成果)

      链接:http://www.cnblogs.com/hysum/p/7094232.html


      (四)使用 foreach 操作数组

      foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思,那么到底怎么使用 foreach 语句呢?

      语法:

      

      我们分别使用 for 和 foreach 语句来遍历数组,来用例子看看foreach是否更简单和便捷。

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            String[] test={"这是","一个","测试用例"};
            System.out.println("用for循环输出数组");
            for(int i=0;i<test.length;i++){
                System.out.print(test[i]);
            }
            System.out.println();
            System.out.println("用foreach循环输出数组");
            for(String t:test){
                System.out.print(t);
            }
        }

      运行结果:

      

      

      看到 foreach 的方便了吧!!

      留个思考问题给大家:如果想在 foreach 语句中获取数组元素的下标,该如何做呢??

      答案很简单哦,只要定一个下标变量就可以了,如下:

      int i=0;
      for(类型 变量:数组)
      {
      i++;//每循环一次自加1,输出时记得减1,因为要的是下标号
      }

    三、Java 中的二维数组

      所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。

      那么如何使用二维数组呢,步骤如下:

      1、 声明数组并分配空间

      

      或者

      

      如:

       

      2、 赋值

      二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始

      

      也可以在声明数组的同时为其赋值

      

      如:

      

      3、 处理数组

      二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时,需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素。如:

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //定义一个两行三列的二维数组并赋值
            int[][] num={{1,2,3},{4,5,6}};
            //定位行
            for(int i=0;i<num.length;i++){
                //定位每行的元素
                for(int j=0;j<num[i].length;j++){
                    //依次输出每个元素(不换行)
                        System.out.print(num[i][j]);
                }
                //实现换行(每输出一行换行)
                System.out.println();
            }
            
        }

      运行结果:

      

      需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组,如下所示:

       

      运行结果为:

              

      使用二维数组要注意:

    •   二维数组的长度即length为行数,不是所有元素的数量;
    •   二维数组的行可以看做是一个一维数组,即二维数组其实是有多个(列)一维数组构成的;
    •   可以通过数组名[行号].length获取此行的列数

    注释:此篇文章是本人根据慕课网上的java课程进行的总结,有兴趣的小伙伴可以自己去慕课网进行视频学习和在线编程,能更快更好地理解知识点哦~欢迎小伙伴随时来查阅知识点φ(>ω<*)

  • 相关阅读:
    42. Trapping Rain Water
    223. Rectangle Area
    645. Set Mismatch
    541. Reverse String II
    675. Cut Off Trees for Golf Event
    安装 VsCode 插件安装以及配置
    向上取整 向下取整 四舍五入 产生100以内随机数
    JS 判断是否为数字 数字型特殊值
    移动端初始配置,兼容不同浏览器的渲染内核
    Flex移动布局中单行和双行布局的区别以及使用
  • 原文地址:https://www.cnblogs.com/hysum/p/7094472.html
Copyright © 2011-2022 走看看