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();//换行
          }
  }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

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