1. 数组概述
数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组中的元素可以是任何数据类型,包括基本类型和引用类型。
一维数组的声明:type var[]; 或 type[] var;Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:int a[5]; //非法
Java中使用关键字 new 创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]
注意:元素为引用数据类型的数组中的每一个元素都需要实例化。
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化,如:
2. 数组元素的引用
定义并用运算符new为之分配空间后后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index] index为数组元素下标,可以是整型常量或整型表达式。如:a[3], b[i], c[6*i] 。数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n-1 。每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。
3. 二维数组
二维数组可以看成以数组为元素的数组。例如:int a[][] = {{1,2},{3,4,5,6},{7,8,9}};
Java中多维数组的声明和初始化应按从高维到低维的顺序进行,例如:
4. 二维数组初始化
5. 数组的拷贝
使用java.lang.System类的静态方法
public static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length)
可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置。
如果源数据数目超过目标数组边界会抛出 ndexOutOfBoundsException 异常。
6. 排序
数组可以看成是多个相同类型数据组合,对这些数据的统一管理。
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组中的元素可以是任何数据类型,包括基本类型和引用类型。
一维数组的声明:type var[]; 或 type[] var;Java语言中声明数组时不能指定其长度(数组中元素的个数),例如:int a[5]; //非法
Java中使用关键字 new 创建数组对象,格式为:数组名 = new 数组元素的类型 [数组元素的个数]
注意:元素为引用数据类型的数组中的每一个元素都需要实例化。
数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化,如:
public class Test { public static void main(String args[]) { int a[] = new int[5]; Date[] days = new Date[3]; System.out.println(a[3]); System.out.println(days[2]); } } class Date { int year,month,day; Date(int y, int m, int d) { year = y; month = m; day = d; } }
2. 数组元素的引用
定义并用运算符new为之分配空间后后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index] index为数组元素下标,可以是整型常量或整型表达式。如:a[3], b[i], c[6*i] 。数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n-1 。每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。
3. 二维数组
二维数组可以看成以数组为元素的数组。例如:int a[][] = {{1,2},{3,4,5,6},{7,8,9}};
Java中多维数组的声明和初始化应按从高维到低维的顺序进行,例如:
int a[][] = new int[3][]; a[0] = new int[2]; a[1] = new int[4]; a[2] = new int[3] int t1[][] = new int[][4]; //非法
4. 二维数组初始化
静态初始化: int intA[][] = {{1,2},{2,3},{3,4,5}}; int intB[3][2] = {{1,2},{2,3},{4,5}};//非法 动态初始化: int a[][] = new int[3][5]; int b[][] = new int[3][] b[0] = new int[2]; b[1] = new int[3]; b[2] = new int[5];
5. 数组的拷贝
使用java.lang.System类的静态方法
public static void arraycopy(Object src,int srcPos,Object dest, int destPos,int length)
可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置。
如果源数据数目超过目标数组边界会抛出 ndexOutOfBoundsException 异常。
class Test { public static void main(String args[]) { String[] s = {"Mircosoft","IBM","Sun","Oracle","Apple"}; String[] sBak = new String[6]; System.arraycopy(s,0,sBak,0,s.length); for(int i=0;i<sBak.length;i++){ System.out.print(sBak[i]+" "); } System.out.println(); int[][] intArray = {{1,2},{1,2,3},{3,4}}; int[][] intArrayBak = new int[3][]; System.arraycopy (intArray,0,intArrayBak,0,intArray.length); intArrayBak[2][1] = 100; for(int i = 0;i<intArray.length;i++){ for(int j =0;j<intArray[i].length;j++){ System.out.print(intArray[i][j]+" "); } System.out.println(); } } }
6. 排序
//选择排序 //java NumSort 3 5 7 1 2 8 9 4 6 //读程序的方法:1,画图2,打印测试信息 class Test { public static void main(String[] args) { int[] a = new int[args.length]; for (int i=0; i<args.length; i++) { a[i] = Integer.parseInt(args[i]); } print(a); selectionSort(a); print(a); } //每一次外层循环,最多交换一次 public static void selectionSort(int[] a) { int temp; for (int i = 0; i < a.length; i++) { //System.out.println(i); for (int j = i + 1; j < a.length; j++) { //System.out.println(" "+j); if (a[i] > a[j]) { temp = a[i]; a[i] = a[j]; a[j] = temp; //System.out.print(" " + i +" <-->"+j +" "); //print(a); } } } //for (int i = 0; i < a.length; i++) { // System.out.print(a[i] + " "); //} } //每一次外层循环,可能交换多次 public static void selectionSort1(int[] a) { int k, temp; for (int i = 0; i < a.length; i++) { k = i; for (int j = k + 1; j < a.length; j++) { if(a[j] < a[k]) { k = j; } } if(k != i) { temp = a[i]; a[i] = a[k]; a[k] = temp; } } } private static void print(int[] a) { for(int i=0; i<a.length; i++) { System.out.print(a[i] + " "); } System.out.println(); } }
发表评论
-
十一、GUI编程
2010-03-28 11:57 9371. GUI -- Graphical User Interf ... -
十、网络编程(TCP/IP、Socket编程、C/S)
2010-03-28 11:16 16621. 网络基础概念 ... -
九、Java多线程机制
2010-03-28 10:56 8511. 线程的基本概念 线程是一个程序内部的顺序控制流。 ... -
八、流
2010-03-20 20:38 8631. Java流式输入/输出原理:在Java程序中,对于数据的 ... -
七、容器/集合
2010-03-20 18:00 9211. 容器概念:Java API 所提供的一系列类的实例,用于 ... -
六、常用类
2010-03-19 20:20 6361. String 类 java.lang.String 类代 ... -
四、异常处理
2010-03-17 22:30 6621. 异常的概念 Java 异常是Java提供的用于处 ... -
三、面向对象
2010-03-17 15:47 7781. 面向对象编程语言特 ... -
二、基础语法
2010-03-17 13:21 6251. 标识符命名规则:由字母、“_”、“$”或数字组成,并以字 ... -
一、Java入门
2010-03-17 12:37 6911. java的核心机制:虚拟机、垃圾收集。 2. JVM ...
相关推荐
第五 数组PPT学习教案.pptx
数据结构 第五数组PPT学习教案.pptx
实验五数组
集思广益话复习 共谋良策促提升—五数组上学期复习活动总结.docx
2075-字符串排序(数组).txt 查找最大的字符(字符数组)xt 回文串(字符数组)xt 计算多项式的值(数组)xt 计算二维数组右上角元素的和(数组).xt 十进制转换为十六进制(数组),t 数组的最大值及下标(数组)....
鞍点 ...插入数组元素(数组) .txt 第几天?txt 输出出现过的大写英文字母(数组).xt 数的转移(数组).txt 数组的平均数和标准差 (数组)txt 数组元素的删除(数组).txt 字符串联合(数组).txt
.
本人上课时老师的课件,讲的还不错,所以建议大家看看
第五单元包括十个单元,分别是一维数组的定义、一维数组的输入与输出、一维数组的插入删除、一维数组的查找统计、一维数组的元素排序、一维数组的应用举例、二维数组的定义与操作、二维数组的应用举例、数字方阵、...
实验五 Java异常处理实验.docx
数据结构练习(含答案):第五章数组和广义表.doc
C#数组中五个数的最大值.cs
南航数据结构课程中的第五章 数组和广义表PPT。
数据结构课件第五章数组数据结构课件第五章数组
第五章 数组和广义表.ppt
c++1)一个包含10个元素的数组,已按升序排序,输入一个任意的整数, 将该整数插入数组中,使数组元素仍保持升序排列。要求编写一个通用的 插入排序函数InsertSort,它带有三个参数,第一个参数是含有n个元素的数组...
第五章 数组.docx
部编版第五章 数组与广义表 考研试题精选.doc
我们使用Python的random模块生成了两个随机数组,分别是1到36中随机选取的5个数和1到12中随机选取的2个数。然后,我们使用加号运算符将这两个数组组合成一个新的数组,并输出结果。 需要注意的是,我们使用了random...
C语言数组部分练习题的选择题,带答案,适合初学者对数组部分的练习使用。