美文网首页
2018-11-26 数组

2018-11-26 数组

作者: 莽夫_b1e1 | 来源:发表于2019-02-18 20:59 被阅读0次

数组的定义和创建

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


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;
                               }
                     }
           }
 }

相关文章

网友评论

      本文标题:2018-11-26 数组

      本文链接:https://www.haomeiwen.com/subject/yqhiqqtx.html