永不服输的Java之路---重学Java (第五章)

如若文章中出现冲突,或者出现错误,请联系 QQ:2669157689 指出我的问题。谢谢~
本章讲一下数组。

JAVA编程基础 —— 数组

1. 一维数组
  1. 数组的基本概念
  • 数组可以看成是多个相同类型数据的组合,实现对这些数据的统
    一管理
    • 举例:
      • {1,2,3,4,5}
      • {“apple”,“pear”,“banana”,“grape”}.
  • 数组中的每一个数据 — 数组的一个元素(element)
    • 数组中的元素可以是任何数据类型,包括基本数据类型和引用
      类型
  • 数组中元素的个数,称为数组的长度(length)
    • JAVA语言中声明数组时不能指定其长度
      • 举例: int a[5]; //非法
  1. 一维数组的声明
  • 一维数组的声明
    • 数组类型 数组名 [ ]
    • 数组类型[ ] 数组名
  • 示例:
int a[];
int[] b;
double d[];
char[] ch;
Student stu[];
  1. 一维数组的创建
  • 一维数组的创建
    • 数组名 = new 数据元素类型[ 元素个数 ]
  • 示例:
int a[];
a = new int[5];

int a[] = new int[5];
  • 创建后的内存情况
    内存情况
  1. 数组的内存模型
  • 数组是存储多个相同类型变量的对象
  • 数组的所有元素保存在堆内存中
  • 创建一个数组就是在堆中创建一个数组对象
  • 数组创建后立即拥有默认值
  • 索引从0开始
  • 连续分配
  1. 数组的初始化
  • 初始化
    • 在创建数组的同时就为数组元素分配空间并赋值
    • 数组类型 数组名[ ] = {元素1,元素2,…}
    • 数组类型 数组名[ ] = new 数据类型[ ]{元素1,元素2,…}
    • int a[ ] = {1,2,3,4,5} ;
    • int a[ ] = new int[]{1,2,3,4,5} ;
  1. 数组元素的访问
  • 数组元素的访问
    • Java中,数组元素额下标从0开始
    • 元素额下标可以是整型常量或者整型表达式
    • 数组名[元素下标] = 元素值;
    • 示例:
int a[];
a = new int[5];
a[0] = 1;
a[1] = 2;
a[2] = 3;
a[3] = 4;
a[4] = 5;
  1. 数组的长度属性
  • 数组的长度(length)必须>=0;
  • length为只读。
  • 利用length遍历数组
  1. 数组的异常
  • 数组中的常见错误
    数组越界异常 (ArrayIndexOutOfBoundsException)
  • 示例

class Array_exception2 {
	
	public static void main(String args[]) {
		
		int a[] = new int[3];
		a[0] = 1;
		a[1] = 2;
		a[2] = 3;
		a[3] = 4;
		System.out.println(a[3]);
	}
}
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
	at Array_exception2.main(Array_exception2.java:10)

2. 多维数组

  1. 多维数组的概念
  • Java中没有真正的多维数组,只有数组的数组
  • Java中多维数组不一定是规则矩阵形式,例如:锯齿数组
  1. 多维数组的声明
  • 二维数组的声明
    • 数组类型 数组名 [ ] [ ]
    • 数组类型[ ] [ ] 数组名
    • 数组类型[ ] 数组名 [ ]
    • 示例:
int a[] [];
int[][] b;
int[] c[];
  • 二维数组的创建
    • 数组名 = new 数据元素类型[ 行数 ] [ 列数 ]
    • 数组名 = new 数据元素类型[ 行数 ] [ ]
    • 必须声明行的个数
    • 示例:
a = new int [3][4];
a = new int [3][];
a = new int [][4]; //非法
  • 二维数组的初始化
    • 数组类型 数组名[ ][ ] = { {元素11,元素12,…} , {元素21,元素22,… } }
    • 数组类型 数组名[ ][ ] = new 数据类型[ ][ ] { {元素11,元素12,…} , {元素21,… } }
    • 示例:
int a[][] = {{1, 2, 3}, {4, 5}, {7}};
int a[][] = new int[][]{{1, 2, 3}, {4, 5}, {7}};
int[][] a = new int[3][];
a[0] = new int[2];
a[1] = new int[3];
a[2] = new int[4];
a[0][0] = 1;
a[0][1] = 2;
  • 二维数组在内存中的表示
    • 示例:int a[ ][ ] = {{1, 2, 3}, {4, 5}, {7}};
      内存表示

3. 数组的操作

  1. 数组的遍历
    利用循环语句和数组下标
  2. 数组的复制 — System.arraycopy( )
    System.arraycopy(source,srcPos,dest,destPos,length)
  • 复制source数组中从下标srcPos开始的length个元素到目标数组dest,
    并从目标数组的下标为destPos的位置开始储存
    • source: 源数组
    • srcPos: 源数组中的起始位置
    • dest: 目标数组
    • destPos:目标数组中的起始位置
    • length: 要复制的数组元素的个数
  1. 数组的排序— java.util.Arrays.sort( )
  • Arrays.sort(arr_name)
  • Arrays.sort(arr_name,fromIndex,toIndex)
  • 对数组arr_name中,从下标为 fromIndex 到 toIndex 的元素(不包括
    toIndex)进行升序排序

下一章内容的理解就要稍微难一点了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章