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 9871. GUI -- Graphical User Interf ... -
十、网络编程(TCP/IP、Socket编程、C/S)
2010-03-28 11:16 17041. 网络基础概念 ... -
九、Java多线程机制
2010-03-28 10:56 8791. 线程的基本概念 线程是一个程序内部的顺序控制流。 ... -
八、流
2010-03-20 20:38 9051. Java流式输入/输出原理:在Java程序中,对于数据的 ... -
七、容器/集合
2010-03-20 18:00 9611. 容器概念:Java API 所提供的一系列类的实例,用于 ... -
六、常用类
2010-03-19 20:20 6601. String 类 java.lang.String 类代 ... -
四、异常处理
2010-03-17 22:30 7041. 异常的概念 Java 异常是Java提供的用于处 ... -
三、面向对象
2010-03-17 15:47 8871. 面向对象编程语言特 ... -
二、基础语法
2010-03-17 13:21 6661. 标识符命名规则:由字母、“_”、“$”或数字组成,并以字 ... -
一、Java入门
2010-03-17 12:37 7151. java的核心机制:虚拟机、垃圾收集。 2. JVM ...
相关推荐
【C语言实验程序、总结 实验五 数组】 在C语言中,数组是一种非常重要的数据结构,用于存储一组相同类型的数据。本实验主要涵盖了以下几个知识点: 1. **一维数组和二维数组**: - 一维数组可以看作是线性的数据...
实验五数组 实验五数组是计算机编程中的一种基本数据结构,数组是一种集合类型的数据结构,用于存储同类型的多个元素。数组可以是一维数组、二维数组或多维数组,数组的定义、赋值、输入输出方法等都是数组的基础...
数组是编程语言中的一种基础数据结构,用于存储同类型的多个数据项。在Java中,数组是一种特殊的数据结构,它的特点是所有元素都具有相同的类型,并且在内存中是连续存储的。数组可以是一维的,也可以是多维的,这里...
2075-字符串排序(数组).txt 查找最大的字符(字符数组)xt 回文串(字符数组)xt 计算多项式的值(数组)xt 计算二维数组右上角元素的和(数组).xt 十进制转换为十六进制(数组),t 数组的最大值及下标(数组)....
鞍点 ...插入数组元素(数组) .txt 第几天?txt 输出出现过的大写英文字母(数组).xt 数的转移(数组).txt 数组的平均数和标准差 (数组)txt 数组元素的删除(数组).txt 字符串联合(数组).txt
数组是计算机科学中基本且重要的数据结构之一,它在存储和处理大量有序数据时发挥着关键作用。在数据结构的学习中,数组是最基础的概念,它提供了以固定索引访问元素的能力,这种索引通常是整数。数组的存贮方式简单...
本人上课时老师的课件,讲的还不错,所以建议大家看看
第五单元包括十个单元,分别是一维数组的定义、一维数组的输入与输出、一维数组的插入删除、一维数组的查找统计、一维数组的元素排序、一维数组的应用举例、二维数组的定义与操作、二维数组的应用举例、数字方阵、...
JavaScript 和 jQuery 中的数组操作是编程中非常基础且重要的部分,尤其在处理数据集合时。在 JavaScript 中,数组是一种特殊的数据结构,可以存储各种类型的数据,包括整型、字符串、对象等。虽然 JavaScript 不...
数据结构练习(含答案):第五章数组和广义表 本资源摘要信息涵盖了数据结构中数组和广义表的相关知识点,包括数组的基本操作、数组的存储方式、稀疏矩阵的压缩存储方法、对称矩阵的存储方式等。 一、选择题 1. ...
五、地址的强制转换 在下面的例子中,我们定义了一个结构体 Test: ```c struct Test{ int Num; char *pcName; short sDate; char cha[2]; short sBa[4]; }*p; ``` 假设 p 的值为 0x100000。那么,下面的...
C#数组中五个数的最大值.cs
#### 五、数组的初始化 C#提供了简洁的语法用于初始化数组,只需在大括号({})内列出初始值即可。如果在声明时未初始化,数组成员会自动设置为其类型的默认值。例如: ```csharp int[] numbers = new int[5] {1, ...
五、应用场景 1. 数据清洗:在数据分析或处理大量文本数据时,可能需要统一替换某些特定的文本,如空格、特殊字符等。 2. 文本过滤:在聊天室或论坛系统中,可以使用数组文本替换来过滤敏感词,保护社区环境。 3....
#### 五、交错数组的应用场景 交错数组非常适合于处理那些数据结构不规则或者数据量动态变化的情况,比如表格数据、统计报表等。例如,在处理Excel表格数据时,由于某些单元格可能为空,导致每行的数据长度不同,...
五、数组元素的地址计算公式 数组元素的地址计算公式是指通过公式计算数组元素的存储地址的过程。地址计算公式可以用来计算二维数组、三维数组等多维数组的元素地址。地址计算公式可以分为行优先顺序和列优先顺序两...
南航数据结构课程中的第五章 数组和广义表PPT。
五、应用示例 在信号处理中,三维数组常用来存储多通道信号,其中第一个维度代表时间,第二个维度表示不同的信号通道,第三个维度可能表示不同样本。在图像处理中,一个典型的三维数组是RGB图像,其尺寸为高度×...
五、内存管理 内存管理是 C 语言中的一种重要机制,用于管理程序的内存空间。内存分为三个部分:静态区、堆、栈。静态区用于存储全局变量和静态变量,堆用于存储动态分配的内存,栈用于存储函数调用时的临时变量。 ...