Java集合/陣列排序知識與IO流結合例項
1 、鍵盤錄入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(); }}
2、已知s.txt檔案中有這樣的一個字串:“hcexfgijkamdnoqrzstuvwybpl”
請編寫程式讀取資料內容,把資料排序後寫入ss.txt中。
public class Paixv { public static void main(String[] args) throws IOException { // 讀取該檔案的內容,儲存到一個字串中 BufferedReader br = new BufferedReader(new FileReader("E:\西部開源\作業\課後練習\java\18-2.txt")); String line = br.readLine(); br.close(); // 把字串轉為字元陣列 char[] chs = line.toCharArray(); // 對字元陣列進行排序 Arrays.sort(chs); // 把排序後的字元陣列轉換為字串 String s = new String(chs); // 把字串再次寫入ss.txt中 BufferedWriter bw = new BufferedWriter(new FileWriter("E:\西部開源\作業\課後練習\java\18-2W.txt")); bw.write(s); bw.newLine(); // 釋放資源 bw.close(); }}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2815536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Java基礎知識】Java陣列與集合Java陣列
- Java知識點總結——IO流框架Java框架
- Java中IO流的知識點總結Java
- JavaScript陣列合並程式碼例項JavaScript陣列
- Java集合 - 集合知識點總結概述Java
- Java 集合與陣列互相轉換Java陣列
- 關於Java的小知識集合之 ArrayList可變長陣列Java陣列
- 總結的Java知識點集合Java
- Verilog例項陣列陣列
- Java基礎知識回顧之六 —– IO流Java
- Java基礎知識回顧之六 ----- IO流Java
- 例項總結Oracle知識點大全Oracle
- Java集合原始碼分析之基礎(一):陣列與連結串列Java原始碼陣列
- 【java】【集合】陣列和集合的基本概述Java陣列
- java集合物件排序總結Java物件排序
- Day55.IO流複習 -Java常用類、集合、IO#Java
- 資料結構與演算法知識點總結(1)陣列與連結串列資料結構演算法陣列
- JAVA學習知識集合Java
- PHP常見陣列函式與例項[基礎]]PHP陣列函式
- 關於Java IO與NIO知識都在這裡Java
- 初識Java(Java陣列-陣列的基本操作)Java陣列
- IO流的Properties集合,序列化流與反序列化流,列印流及commons-IO
- Scala陣列、元組與集合陣列
- 抽象結合例項 Employee抽象
- java IO流 對檔案操作的程式碼集合Java
- Java集合類常見面試知識點總結Java面試
- Rust中陣列資料結構基礎知識Rust陣列資料結構
- IO基礎知識與概念
- Leetcode[陣列] 26. 刪除排序陣列中的重複項LeetCode陣列排序
- Java中IO流學習總結Java
- JVM指令分析例項四(陣列、switch)JVM陣列
- 刪除排序陣列中的重複項排序陣列
- java -IO流Java
- Java IO流Java
- Java IO: 流Java
- Java IO流Java
- java - IO流Java
- 陣列排序陣列排序