2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 集合练习。学生信息包括学号 姓名 出生日期 性别。把N个学生的信息放入一个集合中

集合练习。学生信息包括学号 姓名 出生日期 性别。把N个学生的信息放入一个集合中

时间:2022-06-02 11:56:05

相关推荐

集合练习。学生信息包括学号 姓名 出生日期 性别。把N个学生的信息放入一个集合中

集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。

Student.java

package CollectionText;import java.util.Date;public class Student implements Comparable<Student> {@Overridepublic int compareTo(Student o) {return this.id - o.id;}private int id;private String name;private Date brithday;private String sex;public String getName() {return name;}@Overridepublic int hashCode() {return this.id;}@Overridepublic boolean equals(Object obj) {Student s = (Student) obj;return this.id == s.id;}public void setName(String name) {this.name = name;}public Date getBrithday() {return brithday;}public void setBrithday(Date brithday) {this.brithday = brithday;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public void setId(int id) {this.id = id;}@Override//public String toString() {return "学号:" + id + "\t姓名 :" + name + "\t性别:" + sex + "\t\t生日:" + brithday;}public Integer getId() {return id;}}

=================================================================================================================================

StuMsg.java

package CollectionText;import java.util.Date;import java.util.Map;import java.util.Random;import java.util.TreeMap;import java.util.TreeSet;public class StuMsg {TreeMap<Integer, Student> stu_map = new TreeMap<Integer, Student>();private Random r = new Random();// 定义学号集合。// 初始化 学生集合。public void initialization(int stuNum) {for (int i = 0; i < stuNum; i++) {Student p = new Student();p.setId(i);p.setName("name" + i);p.setBrithday(new Date((long) (System.currentTimeMillis() - (long) (360 * 24 * 3600 * 1000)* r.nextInt(1000))));p.setSex(r.nextInt(100) % 2 == 0 ? "女" : "男");stu_map.put(p.getId(), p);}}// 打印 学生集合。public void disPlay(TreeMap<Integer, Student> stu_map) {for (Map.Entry<Integer, Student> me : stu_map.entrySet()) {// Integer key = me.getKey();Student value = me.getValue();System.out.println(value);}}/*** 使用TreeSet存储返回的排好序的学生集合。因为TreeSet在添加对象时根据对象的Comparable方法会自动排好序。* * @param stuMap* @return*/// 根据学生的生日,对学生进行排序。并存在TreeSet中。public TreeSet<Student> sort(TreeMap<Integer, Student> stuMap) {TreeSet<Student> temp = new TreeSet<Student>(new SortByBrithday());for (int i = 0; i < stuMap.size(); i++) {temp.add(stuMap.get(i));// 添加元素。}return temp;}// 根据学号进行检索函数。public Student getId(int key) {return this.stu_map.get(key);}}

SortByBrithday.java(比较器)

package CollectionText;import parator;/*** 根据生日的排序器。* @author Administrator**/public class SortByBrithday implements Comparator<Student> {@Overridepublic int compare(Student o1, Student o2) {return o1.getBrithday().compareTo(o2.getBrithday());}}

主类CollectionTest.java

package CollectionText;import java.util.TreeSet;public class CollectionTest {public static void main(String[] args) {TreeSet<Student> al = new TreeSet<Student>();StuMsg sm = new StuMsg();sm.initialization(6);sm.disPlay(sm.stu_map);System.out.println("++++++++++++++++++++++++++++++++++");// 根据生日排序演示。al = sm.sort(sm.stu_map);for (Student s : al) {System.out.println(s);}System.out.println("++++++++++++++++++++++++++++++++++");// 检索演示。System.out.println(sm.getId(3));}}

运行结果:

学号:0姓名 :name0性别:女生日:Sat Mar 27 04:46:34 CST

学号:1姓名 :name1性别:女生日:Thu Jun 21 11:45:02 CDT 1990

学号:2姓名 :name2性别:男生日:Sun Feb 12 00:31:59 CST 1984

学号:3姓名 :name3性别:男生日:Thu Jul 25 06:13:12 CST 1985

学号:4姓名 :name4性别:女生日:Mon Oct 14 23:05:21 CST 2002

学号:5姓名 :name5性别:男生日:Sun May 02 06:48:00 CST

++++++++++++++++++++++++++++++++++

学号:2姓名 :name2性别:男生日:Sun Feb 12 00:31:59 CST 1984

学号:3姓名 :name3性别:男生日:Thu Jul 25 06:13:12 CST 1985

学号:1姓名 :name1性别:女生日:Thu Jun 21 11:45:02 CDT 1990

学号:4姓名 :name4性别:女生日:Mon Oct 14 23:05:21 CST 2002

学号:0姓名 :name0性别:女生日:Sat Mar 27 04:46:34 CST

学号:5姓名 :name5性别:男生日:Sun May 02 06:48:00 CST

++++++++++++++++++++++++++++++++++

学号:3姓名 :name3性别:男生日:Thu Jul 25 06:13:12 CST 1985

集合练习。学生信息包括学号 姓名 出生日期 性别。把N个学生的信息放入一个集合中。可以根据学号 对学生信息进行检索。并可以根据生日进行排序输出。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。