欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java使用IO流對數(shù)組排序?qū)嵗v解

 更新時(shí)間:2021年02月22日 14:49:32   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關(guān)于java使用IO流對數(shù)組排序?qū)嵗v解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。

在學(xué)會(huì)了java中io流的使用后,我們對于數(shù)組的排序,又多了一種使用方法。大家知道流處理數(shù)據(jù)的效率是比較理想的,那么在具體操作數(shù)組排序上,很多人對于排序的方法還沒有明確。下面我們先java使用流對數(shù)組排序的思路為大家進(jìn)行梳理,然后帶來對應(yīng)的實(shí)例代碼方法。

1、排序思路

(1)從字符輸入流中讀取文本,緩沖各個(gè)字符,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取

(2)詢問用戶需要多少位數(shù)的數(shù)組

(3)轉(zhuǎn)換為數(shù)字類型

(4)將用戶輸入數(shù)字存入數(shù)組

(5)把數(shù)組按排序需求并打印出來

2、實(shí)例

 public static void main(String[] args) {
 // TODO Auto-generated method stub
 try {
 //數(shù)組a()的數(shù)字個(gè)數(shù),由用戶輸入決定
 InputStreamReader isr=new InputStreamReader(System.in);
 //從字符輸入流中讀取文本,緩沖各個(gè)字符,從而實(shí)現(xiàn)字符、數(shù)組和行的高效讀取
 BufferedReader bfr=new BufferedReader(isr);
 //詢問用戶需要多少位數(shù)的數(shù)組
 System.out.println("請輸入需要多少位數(shù)的數(shù)組:\n");
 String a1=bfr.readLine();
 //將a1轉(zhuǎn)換為數(shù)字類型
 int i=Integer.parseInt(a1);
 //提示用戶輸入數(shù)組數(shù)據(jù)
 System.out.println("請向數(shù)組中存入"+i+"個(gè)數(shù)據(jù):\n");
 //將用戶輸入數(shù)字存入數(shù)組
 Integer[] a=new Integer[i];
 for(int j=0;j<i;j++){
 System.out.println("第"+(j+1)+"個(gè):");
 a[j]=new Integer(bfr.readLine());
 }
 //把數(shù)組按升序排序并打印出來
 for(int k=1;k<i;k++){
 for(int m=0;m<(i-k);m++){
 if(a[m]>a[m+1]){
 //Integer temp=new Integer(0);
 int temp=0;
 temp=a[m];
 a[m]=a[m+1];
 a[m+1]=temp;
 }
 }
 }
 //輸出排序后的數(shù)組
 System.out.println("排序后\n");
 for(int t=0;t<=i;t++){
 System.out.println(a[t]);
 }
 
 } catch (Exception e) {
 // TODO: handle exception
 e.printStackTrace();
 }
 }
 
}

實(shí)例擴(kuò)展:

鍵盤錄入5個(gè)學(xué)生信息(姓名,語文成績,數(shù)學(xué)成績,英語成績),按照總分從高到低存入文本文件。

代碼:

public class TreeSetDemo {
  public static void main(String[] args) throws IOException{
    //創(chuàng)建TreeSet對象,用接口匿名內(nèi)部類的方式實(shí)現(xiàn)Comparator接口
    TreeSet<Student> ts=new TreeSet<Student>(new Comparator<Student>() {
      //重寫Comparator接口中的compare()方法
      @Override
      public int compare(Student s1,Student s2) {
      //主要排序條件:總成績,按從高到低輸出
      int num1=s2.sum(s2)-s1.sum(s1);
      //次要排序條件,當(dāng)總成績相同時(shí)按學(xué)生姓名內(nèi)容比較
      int num2=(num1==0)?s2.getName().length()-s1.getName().length():num1;
        return num2;
      }    
    });
    //鍵盤錄入學(xué)生信息
    System.out.println("請輸入學(xué)生信息:");
    for(int x=1;x<6;x++) {
      Scanner sc=new Scanner(System.in);
      System.out.print("請輸入第"+x+"名學(xué)生的姓名:");
      String name=sc.nextLine();
      System.out.print("請輸入第"+x+"名學(xué)生的語文成績:");
      int chineseScore=sc.nextInt();
      System.out.print("請輸入第"+x+"名學(xué)生的數(shù)學(xué)成績:");
      int mathScore=sc.nextInt();
      System.out.print("請輸入第"+x+"名學(xué)生的英語成績:");
      int englishScore=sc.nextInt();
      //將錄入的學(xué)生信息封裝到學(xué)生對象里
      Student s=new Student();
      s.setName(name);
      s.setChineseScore(chineseScore);
      s.setMathScore(mathScore);
      s.setEnglishScore(englishScore);
      //把學(xué)生對象添加到集合中
      ts.add(s);
    }

    //創(chuàng)建字符緩沖輸出流對象
    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();
    }
    //關(guān)閉流,釋放資源
    bw.close();
  }
}

到此這篇關(guān)于java使用IO流對數(shù)組排序?qū)嵗v解的文章就介紹到這了,更多相關(guān)java如何使用流對數(shù)組排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus可能導(dǎo)致死鎖的問題分析及解決辦法

    Mybatis-Plus可能導(dǎo)致死鎖的問題分析及解決辦法

    這篇文章給大家主要介紹了Mybatis-Plus可能導(dǎo)致死鎖的問題分析及解決辦法,文中通過代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-12-12
  • 日歷顯示讀出輸入的年月的java代碼

    日歷顯示讀出輸入的年月的java代碼

    這篇文章主要介紹了日歷顯示讀出輸入的年月的java代碼,有需要的朋友可以參考一下
    2013-12-12
  • java BigDecimal精度丟失及常見問分析

    java BigDecimal精度丟失及常見問分析

    這篇文章主要為大家介紹了java BigDecimal精度丟失及常見問分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • java實(shí)現(xiàn)上傳文件到FTP

    java實(shí)現(xiàn)上傳文件到FTP

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)上傳文件到FTP,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • java 分行讀取實(shí)例

    java 分行讀取實(shí)例

    今天小編就為大家分享一篇java 分行讀取實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • SpringMVC的Dispatcher解讀

    SpringMVC的Dispatcher解讀

    這篇文章主要介紹了SpringMVC的Dispatcher用法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 使用Backoff策略提高HttpClient連接管理的效率

    使用Backoff策略提高HttpClient連接管理的效率

    這篇文章主要為大家介紹了Backoff策略提高HttpClient連接管理的效率使用解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 詳解使用IntelliJ IDEA 配置Maven(入門)

    詳解使用IntelliJ IDEA 配置Maven(入門)

    本篇文章主要介紹了詳解使用IntelliJ IDEA 配置Maven(入門),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • java之Thread不捕獲異常默認(rèn)處理邏輯

    java之Thread不捕獲異常默認(rèn)處理邏輯

    這篇文章主要介紹了java之Thread不捕獲異常默認(rèn)處理邏輯,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • activemq整合springboot使用方法(個(gè)人微信小程序用)

    activemq整合springboot使用方法(個(gè)人微信小程序用)

    這篇文章主要介紹了activemq整合springboot使用(個(gè)人微信小程序用),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論