亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在java項目中利用IO流對數組進行排序

發布時間:2021-02-22 18:08:52 來源:億速云 閱讀:243 作者:戴恩恩 欄目:開發技術

這篇文章主要為大家詳細介紹了如何在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;j<i;j++){
 System.out.println("第"+(j+1)+"個:");
 a[j]=new Integer(bfr.readLine());
 }
 //把數組按升序排序并打印出來
 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;
 }
 }
 }
 //輸出排序后的數組
 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接口
    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);
      //次要排序條件,當總成績相同時按學生姓名內容比較
      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();
  }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巢湖市| 金阳县| 甘南县| 双柏县| 福州市| 新野县| 南宁市| 漳州市| 吉安县| 锡林郭勒盟| 英超| 徐闻县| 昌黎县| 墨竹工卡县| 德庆县| 施秉县| 大宁县| 乐陵市| 通渭县| 诏安县| 巫溪县| 黔江区| 安龙县| 福贡县| 临西县| 砀山县| 青冈县| 高邮市| 盘锦市| 大余县| 商都县| 新疆| 阿城市| 徐州市| 秦皇岛市| 永靖县| 马关县| 鄱阳县| 和硕县| 长兴县| 玛曲县|