Java 数组

Java 数组

一、什么是数组

定义:数组是具有相同类型且按一定次序排列的一组变量的集合体。

什么是数组元素

构成一个数组的每一个数据称为数组元素。

什么是数组下标

下标是数组元素在数组中的位置。(数组下标从0开始,依次加1)

什么是数组的大小(长度)

数组中元素的个数就是数组的大小(长度)

获取数组长度的方法:

数组名.length

数组长度是在为数组分配内存的时候确定的,数组长度一旦确定,长度不可更改。

二、怎么使用数组

1.定义数组

Java中定义数组有两种语法格式

int score[];
int[] score;

2.为数组元素分配内存

int[] score = new int[];

3.为数组元素初始化

数组声明并为数组分配空间后,必须为数组元素初始化(初始化就是第一次赋值)后,才能使用数组元素 。

score[0] = 100;
score[1] = 89;
score[2] = 97;

4.使用数组

使用数组通常都是求数组的最大最小值,求和,求平均值,遍历数组元素,数组元素排序,数组中元素的数量等操作。

案例如下:

int[] score = new int[]{100,89,97,78,88};
int max = score[0];
for(int i = 1;i < score.length;i++){
    if(score[i]>max){
    max = score[i];
    }
}
System.out.println("最大值为"+max);

三、常见问题

(1)下标越界异常

系统提示运行改程序时发生了java.lang,ArrayindexOutOfBoundsException异常,这个异常表示数组的下标越界了,数组下标的界限是介于0到数组长度减一范围内的整数,数组下标超出这个范围的值就会发生下标越界异常。

int[] score = new int[]{98,87,76,88,79};
System.out.println("第5个学生的成绩是"+score[5])//下标越界

(2)没有分配内存空间

int[] score = null;//没有分配内存空间
System.out.println("第1个学生的成绩是"+score[0])

系统提示运行该程序时发生了java.long.NullPointerException异常,这个异常表示空指针异常。这个程序只为数组名称在栈中分配内存,但是并没有在堆中为数组元素分配内存。当输出score[0]时,表示输出数组score指向内存空间中的第一个元素,但是数组score并没有指向任何内存空间,因此score是空指向(即score的值是null),因此JVM抛出空指针异常。解决办法是为数组元素分配内存,并让数组score指向到数组元素。

(3)语法错误

一些常见的语法错误:

//等号左边的中括号不允许写长度
int array1[3]=new int[]{1,2,3};
//直接为数组元素初始化时不允许指定数组长度
int array2 = new int[3]{1,2,3}
//直接初始化数组元素的代码必须写在一起
int array3;
array3 = {1,2,3}

四、二维数组

Java中定义和操作多维数组的语法和一维数组类似。使用二维数组同一维数组的步骤。1.定义数组。2.为数组元素分配内存。3.数组元素初始化。4.使用数组

(1)定义二维数组

int[][] s;
int s[][];

(2)为二维数组元素分配内存

int [][]s;
s= new int[3][3];

(3)二维数组初始化

int [][]score = new int[][]{
    {11,22,33},
    {21,32,41},
    {31,32,33}
}
//或者
int [][]score = {
    {11,22,33},
    {21,32,41},
    {31,32,33} 
}

(4)二维数组的遍历

二维数组的遍历通常使用双重for循环。

五、Arrays类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

具有以下功能:

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

推荐阅读更多精彩内容

  • 1.了解数组 数组,大家都不陌生,数组对于每一门编程语言都是重要的数据结构之一,当然不同编程语言对于数组的应用和实...
    凝时阅读 1,143评论 2 22
  • Java数组 一、数组简介 数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对...
    IT蚱蜢哥阅读 178评论 0 0
  • 数组 概念:用来连续存储多个同类型元素。 相同类型 在内存中连续存储 多个数据对数组的理解:定义个数组相当于一次定...
    克里斯勇阅读 1,807评论 0 35
  • Hello,今天给各位童鞋们分享Java数组,赶紧拿出小本子记下来吧! 一、一维数组 (1)声明数组变量 为了在程...
    java玛卡阅读 207评论 0 1
  • 数组的基本概念 数组的定义: Java中要求所有的数组元素具有相同的数据类型。因此在一个数组中,数组元素的类型是唯...
    有腹肌的豌豆Z阅读 260评论 0 0