最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java使用IO流对数组排序实例代码解析
时间:2021-02-22 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下java使用IO流对数组排序实例代码解析,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
1、排序思路
(1)从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取
(2)询问用户需要多少位数的数组
(3)转换为数字类型
(4)将用户输入数字存入数组
(5)把数组按排序需求并打印出来
2、实例
public static void main(String[] args) { // TODO Auto-generated method stub try { //数组a()的数字个数,由用户输入决定 InputStreamReader isr=new InputStreamReader(System.in); //从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取 BufferedReader bfr=new BufferedReader(isr); //询问用户需要多少位数的数组 System.out.println("请输入需要多少位数的数组:n"); String a1=bfr.readLine(); //将a1转换为数字类型 int i=Integer.parseInt(a1); //提示用户输入数组数据 System.out.println("请向数组中存入"+i+"个数据:n"); //将用户输入数字存入数组 Integer[] a=new Integer[i]; for(int j=0;ja[m+1]){ //Integer temp=new Integer(0); int temp=0; temp=a[m]; a[m]=a[m+1]; a[m+1]=temp; } } } //输出排序后的数组 System.out.println("排序后n"); for(int t=0;t<=i;t++){ System.out.println(a[t]); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } }
实例扩展:
键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件。
代码:
public class TreeSetDemo { public static void main(String[] args) throws IOException{ //创建TreeSet对象,用接口匿名内部类的方式实现Comparator接口 TreeSetts=new TreeSet (new Comparator () { //重写Comparator接口中的compare()方法 @Override public int compare(Student s1,Student s2) { //主要排序条件:总成绩,按从高到低输出 int num1=s2.sum(s2)-s1.sum(s1); //次要排序条件,当总成绩相同时按学生姓名内容比较 int num2=(num1==0)?s2.getName().length()-s1.getName().length():num1; return num2; } }); //键盘录入学生信息 System.out.println("请输入学生信息:"); for(int x=1;x<6;x++) { Scanner sc=new Scanner(System.in); System.out.print("请输入第"+x+"名学生的姓名:"); String name=sc.nextLine(); System.out.print("请输入第"+x+"名学生的语文成绩:"); int chineseScore=sc.nextInt(); System.out.print("请输入第"+x+"名学生的数学成绩:"); int mathScore=sc.nextInt(); System.out.print("请输入第"+x+"名学生的英语成绩:"); int englishScore=sc.nextInt(); //将录入的学生信息封装到学生对象里 Student s=new Student(); s.setName(name); s.setChineseScore(chineseScore); s.setMathScore(mathScore); s.setEnglishScore(englishScore); //把学生对象添加到集合中 ts.add(s); } //创建字符缓冲输出流对象 BufferedWriter bw=new BufferedWriter(new FileWriter("18-1.txt")); //遍历 for(Student s:ts) { //利用StringBuffer中的追加功能,将需要输出的信息集合在一起 StringBuffer sb=new StringBuffer(); sb.append(s.getName()).append(",").append(s.getChineseScore()).append(",").append(s.getMathScore()) .append(",").append(s.getEnglishScore()).append(",").append(s.sum(s)); //将信息写入文本文件中 bw.write(sb.toString()); //换行 bw.newLine(); //刷新流 bw.flush(); } //关闭流,释放资源 bw.close(); } }
相关文章
- SpringBoot自定义bean绑定解析 10-24
- Javaweb工程运行报错HTTP Status 404解决教程 10-20
- JAVA获取jvm和操作系统相关信息方法 10-20
- BeanFactory和FactoryBean的区别讲解 10-20
- 微信小程序的宿主环境实现教程 10-10
- dispatchEvent解决重叠元素响应事件教程 10-10