数组教学目标●掌握一维数组创建和使用的方法●掌握二维数组创建和使用的方法●掌握数组遍历●掌握填充和替换数组元素●掌握数组排序●掌握数组复制●掌握查询数组方法项目1:一维数组的声明与创建1.声明一维数组语法格式:数组元素类型数组名字[ ]数组元素类型[ ]数组名字int arr[ ];String str[ ];2.一维数组创建语法格式:数组名字[ ]=new 数组元素类型[数组元素个数]3.声明同时创建数组语法格式:数组元素类型数组名[ ]=new 数组元素类型[数组元素的个数] int arr[ ]=new int[16];项目2:一维数组的初始化语法格式:int arr[ ]=new int[]{1,3,5,7,9};静态初始化:public class StaticIntial{public static void main(String[] args) {int s[]=new int[]{1,3,5,7,9,11,13};for(int i=0;i<s.length;i++)//i表示下标位置,从0开始//s.length表示s数组的长度{System.out.println("s["+i+"]="+s[i]);}}}动态初始化public class DynamicIntial {public static void main(String[] args) {int s[]=new int[10];for (int i=0;i<10;i++) {s[i]=2*i+1;}for (int j=0;j<s.length ;j++) {System.out .println("s["+j+"]="+s[j]);}}}数组创建过程:声明数组在栈内存创建变量s ,并不开辟空间。
缺省初始化public class DefaltIntial {public static void main(String[] args) {int s[]=new int [10];for (int j=0;j<s.length ;j++){System.out .println("s["+j+"]="+s[j]);}}}明确:数组如果没有初始化:int 类型数组默认为0;Boolean 类型默认为:FALSEFloat 类型默认为:0.0堆内存项目2:二维数组的创建与初始化1.声明二维数组语法格式:数组元素类型数组名[][];或者数组元素类型 [][] 数组名;int myarr[][];2.创建二维数组myarr=new int [2][4];3.另一种创建的方式a=new int[3];a[0]=new int[4];a[1]=new int[4];a[2]=new int[4];4.Java中的多维数组每一维的长度可以不同int a[][];a=new int[3][];a[0]=new int[4];a[1]=new int[3];a[2]=new int[2];初始化:例如:int a[][]=new int {{1,2,3},{4,5},{6}};例如:创建后再赋值int a[][]=new int[2][2];a[0][0]=1;a[0][1]=2;a[1][0]=3;a[1][1]=4;public class DoubleArray {public static void main(String[] args) {int a[][]=new int[3][4];for(int i=0;i<3;i++){for(int j=0;j<4;j++){a[i][j]=i+j;}}//*************************************for(int k=0;k<3;k++){for(int l=0;l<4;l++){System.out.println(a[k][l]);}}}}项目3:数组复制Java类库中提供了一个静态方法“.arraycopy”实现数组元素的拷贝。
格式:System.arraycopy(source,n1,dest,n2,n3);其中:source:源数组名n1:源数组下标起始位dest:目标数组名n2:目标数组下标起始位n3:复制元素的个数public class ArrayCopy{public static void main (String []args){int a []=new int []{1,2,3,4,5,6};int b []=new int []{10,9,8,7,6,5,4,3,2,1};System.arraycopy(a,0,b,0,3);for (int i=0;i<b.length;i++){System.out.println(b[i]);}}}项目 4:数组元素排序Java.util包中专门有一个数组类“Arrays”用于排序、排序后查找等操作。
使用:int a [ ]={6,8,24,1,2};Array.sotr(a);使用时必须引用: import java.util.Arraysimport java.util.Arrays;//引用public class ArraySort{public static void main (String args[]){int a []={6,1,34,27,31,-1,94};Arrays.sort(a);for (int i=0;i<a.length;i++){System.out.print(a[i]+"\t");}}}项目5:Java中常用的包java.applet:包含一些用于创建Java小应用程序的类。
java.awt:包含一些用于编写与平台无关的图形界面(GUI)应用程序的类。
java.io:包含一些用作输入输出(I/O)处理的类。
ng:包含一些Java语言的基本类与核心类,如String、Math、Integer、System 和Runtime,提供常用的功能,这个包中的所有类是被隐式导入的。
:包含用于建立网络连接的类,与java.io同时使用完成与网络有关的读写。
java.util:包含一些实用工具类和数据结构类。
项目6:使用数组打印9*9乘法表public class MultiTable {public static void main(String[] args) {// TODO 自动生成方法存根int a[][]=new int[9][]; //9行 n(可变)列//将计算结果放入数组中for(int i=0;i<a.length;i++)//外层循环控制行 9 0-8 {a[i]=new int[i+1]; //声明了每行的列数 a[1]=new int[2] //内层循环控制列 n 可变for(int j=0;j<a[i].length;j++){a[i][j]=(i+1)*(j+1);}}//打印输出for(int i=0;i<a.length;i++){for(int j=0;j<a[i].length;j++){System.out.print((j+1)+"*"+(i+1)+"="+a[i][j]+"\t");}System.out.println();}}}结果:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81项目7:package array;/*** 在package explorer的窗口中右键点击你的工程或者由Main函数的java文件, * 选择Run as... 再选择Run Configurations* 在弹出的Run窗体的右栏选择(x)=Arguments栏,* 你可以在program arguments中填写入多个参数值,* 每个参数以“空格”或“回车”结束**/public class CommandLine {public static void main(String args[]) {for(int i=0; i<args.length; i++)System.out.println("args[" + i + "]: " + args[i]);}}。