Java(6)-使用【Arrays类】操作Java中的数组

6. 使用【Arrays类】操作Java中的数组

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

6.1 要使用Arrays类,必须先导入对应的包:

import java.util.Arrays;

6.2 介绍一些Arrays中常用的方法

6.2.1 排序

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

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

6.2.1.2 小疑惑?
import java.util.Arrays;//导入Arrays类
public class HelloWorld {
    public static void main(String[] args) {
        int[] nums = {23, 564, 63, 4, 78, 12, 0};
        Arrays.sort(nums);
        for(int i =0; i<nums.length; i++){
            System.out.println(nums[i]);
        }
        System.out.println(nums);//[I@659e0bfd 这是什么鬼?
        
        //System.out.println( Arrays.sort(nums));// 会报错,和main有关把;
    
    }
}
  • 输出nums,打印的是神马玩意?
    • JavaScript是可以直接打印数组的,但Java中打印数组出来的那个是什么鬼?
  • 既然我使用sort()排序了,为什么不能直接输出Arrays.sort(nums)?
    • 大致猜出,估计和main方法前的void有关系;
  • Java和JavaScript还是有区别的;

6.2.2 将数组转换成字符串

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

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

举个栗子:

  • 写完这个栗子,感觉之前上面的小疑惑少了不少:

    貌似println输出的是字符类型,要把数组转化成字符才能输出,输出结果是[元素1, 元素2,...],之前还猜测Java数组输出形式不会是{元素1, 元素2, ...},捂脸啊...

6.3 java中使用foreach遍历数组

foreachfor语句的特殊简化版本,它在遍历数组集合的时候更简单便捷

语法:

for(元素类型 元素变量:遍历对象){
    // 执行的代码;
}

举个栗子:

import java.util.Arrays;
public class HelloWorld{
        public static void main(String[] args){ 
        String songs[] = {"煎饼", "果子", "来一套"};
        for(String song: songs ){
            System.out.println(song);
        }
    }
}

  • 对比for与foreach:

注意:
元素变量相当于遍历对象中的一个实例,名字只要符合标准规范即可,与JavaScript中的for item in 遍历对象的item类似;

如果想在 foreach 语句中获取数组元素的下标,该如何做呢??

  • 在外部定义一个变量,初始化为0,遍历的同时让这个变量记录循环的次数,把记录的次数当它的下标;


Java中的二维数组

二维数组也相当于一种特殊的``一维数组,只不过它的每个数组空间中保存的是一个一维数组`;

有点绕,我自己认为,它就是一维数组里面套一维数组,不知道对不对;

二维数组的声明:

1.声明数组并分配空间

数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];

另一种写法:

数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];

举栗:

// 定义一个三行两列的二维数组
int[][] test_demo = new int[3][2];

2.赋值
一维数组和二维数组都可以通过下标逐个赋值,下标的索引是从0开始的;

//二维数组赋值
数组名[行的索引][列的索引] = 值;

举栗:

// 定义一个2行2列的二维数组
int[][] num = new int[2][2];
给第1行第1列赋值为2
num[0][0] = 2;

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

数据类型[][] 数组名={{a1,a2...},{a11,a22...},{a21,a22...},...};

卧槽,看慕课上写的这个地方我有点懵逼了,🙃

好了,这样就清楚多了,还是小姿势不对惹的祸,嘿嘿嘿

3.处理数组

二维数组的访问和输出同一维数组一样,只是多了一个下标而已;

在循环输出时,需要外层循环再内嵌一个循环,即外层(行)循环一次内层(列)循环一圈,就可以输出二维数组中的每一个元素了;

二重循环:

public class HelloWorld {
    public static void main(String[] args){
         String[][]  arr = {{"a1", "a2", "a3"}, {"b1", "b2", "b3"}};
          for(int i = 0; i < arr.length; i++){
              for(int j =0; j < arr[i].length; j++){
                      System.out.print(arr[i][j]+",");
              }
           System.out.println();//换行
          }
  }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、 声明数组 语法:数据类型[] 数组名; 或者数据类型 数组名[]; 其中,数组名可以是任意合法的变量名,如:...
    吴迪好阅读 648评论 0 1
  • 第五章 数组 数组是一个基础的数据结构,它用来存储一组相同类型的元素的集合。数组非常有用,例如Java提供的集合...
    光剑书架上的书阅读 515评论 0 6
  • 5.1 什么是数组 问:编写代码保存 4 名学生的考试成绩。答:简单啊,定义 4 个变量呗问:那“计算全年级 40...
    夏沫xx阅读 499评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 第一次开始用微信读书应该是今年三四月份,二姐在微信里赠送了我一本书,正好那本书是当时想看的,相比于电子书,我更喜欢...
    是喵儿啊阅读 3,351评论 3 7