Java-数组实验.pdf
《Java-数组实验.pdf》由会员分享,可在线阅读,更多相关《Java-数组实验.pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验七数组一实验目的1掌握数组相关常用算法2掌握方法的定义和调用二实验内容1.使用程序生成两行随机整数,整数之间用逗号分隔,并写入文本文件data.txt 中。Math.random()返回 0-1 之间的随机数,通过乘以 n 并取整可得到0n-1 之间的随机数。打开文件、关闭文件和写入文件的代码如下:BufferedWriter bw=new BufferedWriter(new FileWriter(data.txt);/打开文件bw.write(new Integer(x);/输出数据到文件bw.close();/关闭文件另外,bw.newLine()可在文件中输出换行符。写入数据类:p
2、ackage exp7(FileWrite);import java.io.BufferedWriter;import java.io.FileWriter;import java.io.IOException;public class FileWrite public FileWrite(String fileName,int n,int size)throws IOException /n 为需要写入的几行数,size 为一行有多少个数字BufferedWriter bw=new BufferedWriter(new FileWriter(fileName);/创建字符流for(int j
3、=1;j=n;j+)for(int i=1;i=size;i+)int random=(int)(100*Math.random();/产生 0-100 之间的随机数String st=random+;/将整型转化为字符型数据bw.write(st);/写入文件if(i=size-1)bw.write(t);/在每个数据后面写入制表位 bw.newLine();/另起一行 bw.close();/关闭文件输出流 public FileWrite(int tar,String fileName)throws IOException BufferedWriter bw=new BufferedWr
4、iter(new FileWriter(fileName);for(int i=0;i tar.length;i+)String st=tari+;bw.write(st);if(itar.length-1)bw.write(t);bw.close();System.out.println(文件写入成功!);读出数据类(ReadData)package exp7;import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.util.ArrayList;import
5、java.util.Scanner;public class ReadData public static ArrayList readData(String fileName)throws IOException /创建 ArrayList 集合用于返回数组对象Scanner sc=new Scanner(new BufferedReader(new FileReader(fileName);/读入制定路径的文件ArrayList al=new ArrayList();/创建 ArrayList 集合while(sc.hasNextLine()/循环读出每行数据,并将每行数据装入数组中,再将
6、数据装入集合中String st=sc.nextLine();/一次性读取整行数据String strArr=st.split(t);/根据制表位分割数组int lengths=strArr.length;/定义数组的长度int strToInt=new intlengths;/创建用于存储数字的整形数组for(int i=0;i strArr.length;i+)strToInti=Integer.parseInt(strArri);/将字符型数据转化为整型数据 al.add(strToInt);/将两个数组存入集合中 int a=al.get(0);return al;/返回集合对象 2
7、读 取 第 一 题 生 成 的data.txt文 件 中 的 第 一 行 整 数 存 放 到 整 型 数 组a 中。已 知System.currentMillis()方法可返回从1970 年 1 月 1 日到系统当前时间所经过的毫秒数。通过在算法代码执行前后分别调用该方法并求其差值,可定量测量代码的执行时间。使用实验六第三题的三种排序算法分别对数组a 进行排序,输出排序代码执行耗费的时间,并分析。为了得到测量数据,整数的数量应该足够大。表格中第一行为参与排序的数据个数,需要填写排序耗费的时间。100 1000 10000 冒泡排序12 57 545 选择排序8 52 281 快速排序10 55
8、 109 3读取第一题生成的data.txt 文件中的整数分别存放到两个整型数组a 和 b 中。分别对a和 b 进行排序,然后将 a 和 b 中的数据合并到新数组c 中并保持数据有序。最后将排序后的数据写入到结果文件result.txt 中。方法一在合并的过程中排序合并类(SortAndSort):package exp7;import exp6.ArraySort;import java.io.FileNotFoundException;import java.io.IOException;public class SortAndSort public static int afterSor
9、t(int a,int b)throws FileNotFoundException int length=a.length+b.length;int c=new intlength;System.arraycopy(a,0,c,0,a.length);/将 a 数组的元素复制到c 数组中System.arraycopy(b,0,c,a.length,b.length);/将 b 数组的元素复制到c 数组中ArraySort.bubbleSort(c);/对 c 数组在进行排序return c;public static int conbineSort(int a,int b)throws F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 数组 实验
限制150内