20 }
? 数组的概念:数组是常用的数据结构,数组用于将相同类型的若干变量按照有序的方式组织起来,数组中每一个变量称为数组元素,数组分为一维数组和多维数组。
声明:数据类型数组名[ ];或者数据类型[ ] 数组名;例如int a[];float[] b; 创建:数组名=new 数据类型[数组长度]:例如a=new int[20]; 同时声明和创建int a[]=new int[20];
? 一维数组的初始化int[] a=new int[5];a[0]=1;或者int a[]={1,2,3,4,5}; ?
任务:有一个3×4的矩阵和一个4×3的矩阵,请求解两矩阵的乘积。
1 /** 矩阵的乘法**/
2 public class MatricesMultiplication { 3 public static void main(String args[]) { 4 // 创建二维数组并初始化 5 6 7 8 9
int a[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; int b[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } }; // 创建存放结果矩阵的二维数组 int c[][] = new int[3][3]; int i, j, k;
10 System.out.println(\矩阵的乘积-----\
11 12 13 14 15 16 17 18 19 20 21 22
// 三重循环求矩阵乘积
for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { c[i][j] = 0; for (k = 0; k < 4; k++) c[i][j] = c[i][j] + a[i][j] * b[i][j]; System.out.print(c[i][j] + \ } System.out.println(); } } }
? 任务:将10名学生的考试成绩进行从大到小的排序。(Arrays类的sort方法)
1 /**起泡排序**/
2 import java.util.*;
3 public class ArraySort1 {
4 public static void main(String args[]) { 5 float score[] = new float[10]; 6 int i, j;
7 float temp;
8 System.out.println(“请输入10名学生的考试成 9
Scanner in = new Scanner(System.in);
10 // 循环输入学生成绩 11 for (i = 0; i < score.length; i++) 12 score[i] = in.nextFloat(); 13 // 起泡排序法
14 for (i = 0; i < score.length - 1; i++) 15 for (j = 0; j < score.length - 1 - i; j++) 16 if (score[j] < score[j + 1]) {
17 18 19 20 temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; }
21 System.out.println(\学生成绩排序-------------\22 //循环输出排序后数组元素 23 for (i = 0; i < score.length; i++) { 24 System.out.print(score[i] + \25 if ((i + 1) % 5 == 0) 26 System.out.println(); 27 } 28 } 29 }
排序的算法有很多种,可分为插入排序、快速排序、选择排序、归并排序、计数排序等几大类。
先将数组第1个元素和第2个元素进行比较,若发现逆序,则进行一次对调;接着再对第2个元素和第3个元素进行比较,若逆序,再交换……如此一直进行到第n-1个元素和第n个元素。此时数组中最大(小)的一个元素已经?沉底?。然后进行第二趟的相邻元素两两比较,直到次大(小)的元素放到倒数第2个元素的位臵上。如此循环往复,直到所有元素位臵均正确不需要交换为止。
Arrays类的sort方法
1 /** 使用Arrays类的sort()方法**/ 2 import java.util.*; 3 public class ArraySort2 { 4 public static void main(String args[]) { 5 6
float score[] = new float[10]; int i;
7 System.out.println(\请输入10名学生的考试成绩:\
8 Scanner in = new Scanner(System.in); 9
// 循环输入学生成绩
10 for (i = 0; i < score.length; i++) 11
score[i] = in.nextFloat();
12 Arrays.sort(score); // 使用Arrays类的sort()方法排序
13 System.out.println(\学生成绩排序-------------\14 // 逆序输出排序后数组元素 15 16 17 18 19 20 } 21 }
for (i = score.length - 1; i >= 0; i--) { System.out.print(score[i] + \if ((i + 1) % 6 == 0) }
System.out.println();
Arrays是java.util包中预定义的一个类,因此在使用时需要用import说明将其导入到程序中。Arrays类包含用来操作数组的各种方法,比如排序和搜索。Arrays类的sort方法是一个静态方法,所以可以不创建Arrays类的实例而直接使用类名来调用sort方法,其一般的调用格式为: Arrays.sort(数组名)
使用sort方法对数组进行排序,避免了在程序中用代码实现复杂的排序算法,其实sort方法中使用的就是一个经过调优的快速排序算法。sort方法是将数组中的元素按照升序进行排列,也就是从小到大的顺序进行排列。
判断回文字符串(字符串处理String类)
5 /**判断回文字符串**/
6 import java.util.*; 7 public class StringJudge { 8 9
public static void main(String args[]) {
String s; char c1, c2; int i, l;
10 11
12 boolean flag = true;
13 System.out.println(\请输入要判断的字符串:\14 Scanner in = new Scanner(System.in); 15 16
s = in.next(); l = s.length();
17 //取对应位臵字符进行比较 18
for (i = 0; i < l / 2;) {
19 c1 = s.charAt(i); 20 c2 = s.charAt(l - i - 1); 21 22 23 24 25 26 27
if (c1 == c2) }
i++; else { flag = false; break; }
28 System.out.println(\判断回文字符串-----\29 //根据flag的值进行判断