实验六
实验项目:实验六 数组、字符串(1)
实验时间:2019.4.20
一、实验目的
- 掌握数组的概念与用法
- 掌握异常处理的用法。
- 学习编写程序处理异常。
二、实验内容
必做
1、 编写类文件Sort.java,内含变量一维数组,其中有方法可以按升序及降序对一维整型数组元素进行排序,打印。
要求:可以用Java中的现成的排序方法,也要求自己写排序方法,不可以调用数组里的方法尝试着比较一下两种方法之间的性能。
源码:
package ex06;
/*
* 1、 编写类文件Sort.java,内含变量一维数组,
* 其中有方法可以按升序及降序对一维整型数组元素进行排序,打印。
要求:可以用Java中的现成的排序方法,也要求自己写排序方法,
不可以调用数组里的方法
尝试着比较一下两种方法之间的性能。
*/
import java.util.Arrays;
public class Sort {
static int[] a = {1,5,7,4,2,6,3};
public static void main(String[] args) {
m1();//调用方法一(Java自带排序方法)进行排序
System.out.println("---------------------------");//分割线
m2();//调用方法二经行升序方法排序
System.out.println("---------------------------");//分割线
m3();//调用方法三进行降序方法排序
}
//方法一:
public static void m1() {
Arrays.sort(a);//java 中自带的排序方法
for(int i : a) {
System.out.println(i);
}
}
//其他(方法二):升序
public static void m2() {
for(int i = 0 ; i < a.length-1;i++) {
for(int j = i + 1;j < a.length;j++) {
if(a[i]>a[j]) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(int k = 0 ; k < a.length;k++) {
System.out.println(a[k]);
}
}
//其他方法(方法二):降序
public static void m3() {
for(int i = 0 ; i < a.length-1;i++) {
for(int j = i + 1;j < a.length;j++) {
if(a[i]<a[j]) {
int temp = a[i];//声明整形数值temp作为中间变量
a[i] = a[j];
a[j] = temp;
}
}
}
for(int k = 0 ; k < a.length;k++) {
System.out.println(a[k]);
}
}
}
运行结果:
比较:Java自带的的排序快速便捷,但是不能降序排序;自己写的排序方式逻辑严谨,简单易懂。
2、教材第四章课后习题第5或6题,必须完成一题;可两题都做
(尽量不要用结构化程序设计的思想即在主方法中完成功能)
提示:成员变量为数组,构造方法中队该数组进行初始化,即new。一个方法生成20个随机整数保存在数组中,另一个方法计算统计结果,一个方法输出。
源码:
package ex06;
/*
* 书本第四章课后作业第5题
*/
import java.lang.Math;
//调用类
public class RandomTest {
//public static double random();
public static void main(String[] args) { // 程序入口
int[] a = new int[21];//声明一个int类型的数组
for(int i = 0 ; i < 10000;i++) {
//对下式运行10000次
int b = (int)(Math.random()*20+0.5);
//分别对应给数组a的下表对应元素赋值
for (int j = 0;j < 21;j++) {
if (b==j) {
a[j] = a[j]+1;//当对应值相等时,a数组的对应下标的数组的值+1
break;//节省运行时间
}
}
}
//将数组遍历
for(int k = 0;k<21;k++) {
System.out.println("生成的整数"+k+"共有"+a[k]+"个");
}
}
}
运行结果:
实验总结:加深对数组概念的了解以及使用方法