java 学生成绩排序
生活随笔
收集整理的這篇文章主要介紹了
java 学生成绩排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
編寫一個(gè)應(yīng)用程序,用戶分別從兩個(gè)文本框輸入學(xué)術(shù)的姓名和分?jǐn)?shù),程序按成績排序?qū)⑦@些學(xué)生的姓名和分?jǐn)?shù)顯示在一個(gè)文本區(qū)中。
程序運(yùn)行效果如圖:
?
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField; public class Student extends JFrame { JLabel lName,lScore; JTextField tName,tScore; JTextArea taShow; JButton bSubmit; JPanel pan; Map<String,String> studentMap,resultMap; public static void main(String[] args) { new Student(); } public Student() { init(); click(); } public void init() { lName=new JLabel("姓名"); lScore=new JLabel("成績"); tName=new JTextField(10); tScore=new JTextField(10); bSubmit=new JButton("確定"); pan=new JPanel(); taShow=new JTextArea(); pan.add(lName); pan.add(tName); pan.add(lScore); pan.add(tScore); pan.add(bSubmit); add(pan,BorderLayout.NORTH); add(taShow, BorderLayout.CENTER); setTitle("學(xué)生成績排序"); setSize(400, 300); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); validate(); studentMap=new HashMap<String,String>(); } private void click() { bSubmit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { save(); showMap(); } }); } private void save() { studentMap.put(tName.getText(),tScore.getText()); resultMap = sortMapByValue(studentMap);tName.setText(""); tScore.setText(""); } public static Map<String, String> sortMapByValue(Map<String, String> map) { if (map == null || map.isEmpty()) { return null; } Map<String, String> sortedMap = new LinkedHashMap<String, String>(); List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<String, String>>(map.entrySet()); Collections.sort(entryList, new MapValueComparator()); Iterator<Map.Entry<String, String>> iter = entryList.iterator(); Map.Entry<String, String> tmpEntry = null; while (iter.hasNext()) { tmpEntry = iter.next(); sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue()); } return sortedMap; } private void showMap() { taShow.setText(""); for(Map.Entry<String,String> entry:resultMap.entrySet()) { taShow.append("姓名:"+entry.getKey()+" 成績:"+entry.getValue()+"\n"); } } } class MapValueComparator implements Comparator<Map.Entry<String, String>> { public int compare(Entry<String, String> s1, Entry<String, String> s2) { return s1.getValue().compareTo(s2.getValue()); } }運(yùn)行結(jié)果:
?
轉(zhuǎn)載于:https://www.cnblogs.com/songqinzhe/p/8037221.html
總結(jié)
以上是生活随笔為你收集整理的java 学生成绩排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xenserver 脚本学习之/opt/
- 下一篇: 对软件工程的期望