天天看点

java范例_Java范例集锦(四)

范例1. 对矩陈进行转置运算

所谓对矩陈的转置就是将矩陈的行列互换。示例代码如下:

public classArrayRowColumnSwap {public static voidmain(String[] args) {//TODO Auto-generated method stub

int arr[][]=new int[][]{{10,11,12},{20,21,22},{30,31,32}}; //创建二维数组

System.out.println("******转置前的矩陈是:******");

printArray(arr);//输出二维数组

int arr2[][]=new int[arr.length][arr.length];for(int i=0; i

for(int j=0;j

arr2[j][i]=arr[i][j];

}

}

System.out.println("******转置后的矩陈是:******");

printArray(arr2);

}public static void printArray(int[][] arr) {for(int i=0;i

for(int j=0;j

System.out.print(arr[i][j]+"\t");

}

System.out.println();

}

}

}

其执行结果如下:

******转置前的矩陈是:******

10 11 12

20 21 22

30 31 32

******转置后的矩陈是:******

10 20 30

11 21 31

12 22 32

范例2. 求方陈的迹

方陈的迹,即方陈主对角线上所有元素的和。示例代码如下:

public classTrace {public static voidmain(String[] args) {//TODO Auto-generated method stub

int arr[][]= { //创建二维数组

{5,10,15,20},

{10,15,20,25},

{15,20,25,30},

{20,25,30,35}

};int tr=0;

System.out.println("********方陈arr[][]是:********");for(int i=0;i

for(int j=0;j

System.out.print(arr[i][j]+"\t");

}

System.out.println();

}for(int i=0;i

tr+=arr[i][i];

}

System.out.println("方陈arr[][]的迹是:"+tr);

}

}

执行结果是:

********方陈arr[][]是:********

5 10 15 20

10 15 20 25

15 20 25 30

20 25 30 35方陈arr[][]的迹是:80

范例3. 遍历数组

3.1. 遍历一

public classGetDay {public static voidmain(String[] args) {//TODO Auto-generated method stub

int day[]= {31,28,31,30,31,30,31,31,30,31,30,31}; //创建并初始化一维数组

for(int i=0;i

System.out.print((i+1)+"月有"+day[i]+"天"+"\t\t");if((i+1)%3==0) { //如果i+1之和求余为零

System.out.print("\n"); //输出回车

}

}

}

}

执行结果显示如下:

1月有31天 2月有28天 3月有31天

4月有30天 5月有31天 6月有30天

7月有31天 8月有31天 9月有30天

10月有31天 11月有30天 12月有31天

3.2. 遍历二维数组,示例代码如下:

public classTrap {public static voidmain(String[] args) {//TODO Auto-generated method stub

System.out.println("*****利用for循环遍历二维数组*****");int arr[][]=new int[][] {

{10,20},

{12,13,14,15,16},

{17,18,19}

};//创建二维数组

for(int i=0;i

System.out.print(arr[i][j]+" ");

}

System.out.println();

}

System.out.println("*****使用foreach语句遍历二维数组*****");for(int[] x:arr) { //外层循环变量为一维数组

for(int y:x) { //循环遍历每一个数组元素

System.out.print(y+" ");

}

System.out.println();

}

}

}

执行结果为:

*****利用for循环遍历二维数组*****

10 20

12 13 14 15 16

17 18 19

*****使用foreach语句遍历二维数组*****

10 20

12 13 14 15 16

17 18 19

范例4. 使用直接插入法排序

public classInsertSort {public static voidmain(String[] args) {//TODO Auto-generated method stub

int[] a=new int[] {12,33,23,78,20,98,28}; //创建数组并初始化

System.out.println("******排序前:******");for(int i=0;i

System.out.print(a[i]+" "); //输出数组元素

}int tmp; //定义临时变量

intj;for(int i=1;i

tmp=a[i]; //保存临时变量

for(j=i-1;j>=0&&a[j]>tmp;j--) {

a[j+1]=a[j]; //数组元素互换

}

a[j+1]=tmp; //在排序位置插入数据

}

System.out.println("\n******排序后:******");for(int i=0;i

System.out.print(a[i]+" ");

}

}

}

执行结果为:

******排序前:******

12 33 23 78 20 98 28

******排序后:******

12 20 23 28 33 78 98

范例5. 使用冒泡法排序

冒泡法排序的基本思路是对比相邻的元素值,如果满足条件就交换元素值,把较小的数移到数组前面,把大的元素移到数组后面。

冒泡排序其缺点是相较其他排序算法来讲就是效率不高。示例代码如下:

public classBubbleSort {public static voidmain(String[] args) {//TODO Auto-generated method stub

int a[]=new int[] {12,33,23,46,78,9,18}; //声明并初始化一维数组

System.out.println("***********冒泡法排序的过程是:***********");for(int i=1;i

System.out.print("第"+i+"次冒泡排序:");for(int j=0;j

if(a[j]>a[j+1]) {inttmp;

tmp=a[j]; //把第一个元素值保持到临时变量中

a[j]=a[j+1]; //把第二个元素值保存到第一个元素中

a[j+1]=tmp; //把第一个元素原值保存到第二个元素中

}

System.out.print(a[j]+" "); //输出排序后的数组元素

}

System.out.print("[");for(int j=a.length-i;j

System.out.print(a[j]+" "); //输出排序后的元素

}

System.out.print("]\n");

}

System.out.println("*****输出冒泡排序后的结果:*****");for(intx:a) {

System.out.print(x+" ");

}

}

}

执行后其结果是:

***********冒泡法排序的过程是:***********第1次冒泡排序:12 23 33 46 9 18 [78]

第2次冒泡排序:12 23 33 9 18 46 [46 78]

第3次冒泡排序:12 23 9 18 33 46 [33 46 78]

第4次冒泡排序:12 9 18 23 33 46 [23 33 46 78]

第5次冒泡排序:9 12 18 23 33 46 [18 23 33 46 78]

第6次冒泡排序:9 12 18 23 33 46 [12 18 23 33 46 78]*****输出冒泡排序后的结果:*****

9 12 18 23 33 46 78

范例6. 输出九宫格

九宫格的思想是,在一个三维方陈的九个元素中分别填入1~9个数,使得每一行、列和对角线上3个数的和都等于15。示例代码如下:

public classNineTable {public static voidmain(String[] args) {//TODO Auto-generated method stub

int arr[][]=new int[3][3]; //创建一个3阶方陈

int a=2; //第三行的行下标

int b=1; //第2列的列下标

for(int i=1;i<=9;i++) { //给数组赋值

arr[a++][b++]=i;if(i%3==0) { //如果i求余为0

a-=2;

b-=1;

}else{

a=a%3;

b=b%3;

}

}

System.out.println("******输出九宫格:******");for(int i=0;i

System.out.print(arr[i][j]+"\t");

}

System.out.println("\n");

}

}

}

执行结果为:

******输出九宫格:******

4 9 2

3 5 7

8 1 6