第14周—Java集合框架(第2题)
来源:互联网 发布:js显示当前时间年月日 编辑:程序博客网 时间:2024/06/03 18:18
编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。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{ JTextField text1,text2; JButton button; JTextArea area; JPanel pan; JLabel name1,name2; Map<String,String> studentMap,resultMap; public static void main(String[] args) { new Student(); } public Student(){ init(); click(); } private void init() { name1=new JLabel("姓名"); name2=new JLabel("成绩"); text1=new JTextField(10); text2=new JTextField(10); button=new JButton("确定"); pan=new JPanel(); area=new JTextArea(); pan.add(name1); pan.add(text1); pan.add(name2); pan.add(text2); pan.add(button); add(pan,BorderLayout.NORTH); add(area, BorderLayout.CENTER); setTitle("学生成绩排序"); setSize(400, 300); setVisible(true); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); validate(); studentMap=new HashMap<String,String>(); } private void click() { button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { save(); showMap(); } }); } private void save() { studentMap.put(text1.getText(),text2.getText()); resultMap = sortMapByValue(studentMap); name1.setText(""); name2.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()); //将元素存入List中,类型为entry 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() { area.setText(""); for(Map.Entry<String,String> entry:resultMap.entrySet()) { area.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()); } }
阅读全文
0 0
- 第14周—Java集合框架(第2题)
- 第14周—Java集合框架上机练习题1
- 第8章 Java集合框架1
- Java学习第14天:集合框架零接触和基本理解(List和Set)
- 黑马程序员 —— JavaAPI_集合框架 (第十四天)
- 黑马程序员——第九天(集合框架)
- 黑马程序员-第十四天(集合框架)
- 黑马程序员——Java基础---集合(集合框架工具类:collections和Arrays)--第17天--第202-212集
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第1节 JAVA中的集合框架概述
- 第10篇-JAVA 集合框架-JAVA 泛型
- Java复习第三天---集合框架的相关知识
- 黑马程序员--Java基础学习(集合框架)第十四天
- java面向对象第7章 集合框架
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第2节 Collection接口&List接口简介
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第6节 学生选课—课程查询
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第7节 学生选课—课程修改
- 【慕课笔记】第四章 JAVA中的集合框架(上) 第8节 学生选课—课程删除
- 黑马程序员——第16天上——(API)集合框架(Map集合)
- Igor and his way to work-Codeforce 793B BFS
- 移动Web开发基础-利用VW单位适配布局
- mysql 添加字段、删除字段、调整字段顺序
- Java web从入门到放弃(3)
- 编译进阶(二)精彩的C4
- 第14周—Java集合框架(第2题)
- Python学习日记 第六天
- 软键盘的显示和隐藏的正确姿势
- BZOJ5105: [CodePlus2017]晨跑
- 经典算法之二路归并排序
- [bzoj2588][主席树]Count on a tree
- 在存储过程中给in参数传带逗号值的办法,如传'1','2','3'这样的
- 【学习C++】标准C++中的STL容器类简介
- C语言实现顺序表结构(静态)