2018-11-26 数组

数组的定义和创建

数组可以看成是多个相同类型数据的组合,实现对这些数据的统一管理
例如:


image.png

数组元素:数组中的每一个数据,称为数组的一个元素(element)

数组中的元素可以是任何数据类型,包括基本数据类型和引用类型

数组中元素的个数,称为数组的长度(length)
JAVA语言中声明数组时不能指定其长度
例如:
int a[5]; //非法
int a[]; //合法
int[] a; //合法
数组的声明:
数组类型 数组名 [ ] 或 数组类型[ ] 数组名
int a[ ] ;
int[ ] b ;
double d[ ] ;
char[ ] ch ;
String stu[ ] ;
指定数组长度:
数组名 = new 数据元素类型[ 元素个数 ]
数组长度一经定义,固定不变。
int a[ ] ;
a = new int[5];

int a[ ] = new int[5];

数组的内存模型

-数组是存储多个相同类型变量的对象。数组的-所有元素保存在堆内存中。
-创建一个数组就是在堆中创建一个数组对象。
-数组创建后立即拥有默认值。
-索引从0开始。
-连续分配

image.png

数组的初始化:

在创建数组的同时就为数组元素分配空间并赋值
数组类型 数组名[ ] = {元素1,元素2,…} 或 数组类型 数组名[ ] = new 数据类型[ ]{元素1,元素2,…}
数组元素的赋值
-Java中,数组元素的下标从0开始;
-元素的下标可以是整型常量或整型表达式;
-数组的查询效率高,可以通过下标进行对数组的定位检索。
数组名[元素下标] = 元素值;

创建数组:

声明数组:和使用变量要先声明一样,先声明数组的类型和名称


image.png

构造数组

image.png

foreach循环访问数组:

foreach循环:在JDK5以后版本中,增加的循环方式,是for循环的特殊简化版本。
语法为:
for(数组元素类型 变量名 : 数组名){
语句;
}

作用:

该循环方式为按照数组下标顺序,依次将冒号右边数组中的每个元素赋值给冒号左边的变量,数组长度为for循环的次数。
示例:
class Hello {
public static void main( String args[ ]) {
int a[] = {1,-12,33};
for(int i : a){
System.out.println(i);
}
}
}

数组长度

数组有length属性,用来显示本数组的长度,语法为:
数组名.length
特点:
数组的长度(length)必须>=0;
length为只读,不能被赋值。
利用length遍历数组
示例:

class Hello {
         public static void main( String args[ ]) {
                 int a[] = {1,-12,33};
                 for(int i=0;i<a.length;i++){
                     System.out.println(a[i]);
                  }
         }
}

一维数组 数组的异常

数组越界异常(ArrayIndexOutOfBoundsException )
多维数组的创建:
数组类型 数组名 [ ] [ ]
数组类型[ ] [ ] 数组名
数组类型[ ] 数组名 [ ]
多维数组的创建:
数组名 = new 数据元素类型[ 行数 ] [ 列数 ] ;
数组名 = new 数据元素类型[ 行数 ] [ ] ;
多维数组的初始化:
数组类型 数组名[ ][ ] = { {元素11,元素12,…} , {元素21,元素22,… } }
数组类型 数组名[ ][ ] = new 数据类型[ ][ ] { {元素11,元素12,…} , {元素21,… } }

一维数组应用

从键盘输入班级学员成绩,计算全班学员的平均分


image.png

image.png

image.png

冒泡排序法(Bubble Sort)

冒泡排序法是一种简单的排序算法

它重复地走访过要排序的数组,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数组的工作是重复地进行直到没有再需要交换,也就是说该数组已经排序完成。

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

推荐阅读更多精彩内容

  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,599评论 0 9
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,762评论 2 9
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,383评论 0 4
  • 老爸今天比我起的早 我起来时他已经泡茶喝了 大概是因为昨天晚上小外甥跟珍姐来了 早早起来去架锅炉去了 怕冷 昨晚的...
    小山松柏阅读 113评论 0 0
  • 人海,唯有驻足霎那 永恒,不过是畅谈后的信任与陪伴 匆匆而过 门前苦苦等过 过客,抉择 轰烈的青春 逃不掉匆匆而过...
    皮卡丘皮W阅读 205评论 0 1