码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础知识强化之集合框架笔记45:Set集合之TreeSet存储自定义对象并遍历练习1(自然排序)

时间:2015-10-06 22:17:03      阅读:524      评论:0      收藏:0      [点我收藏+]

标签:

1. TreeSet存储自定义对象并遍历练习1(自然排序):

(1)Student.java:

 1 package cn.itcast_05;
 2 
 3 /*
 4  * 如果一个类的元素要想能够进行自然排序,就必须实现自然排序接口
 5  */
 6 public class Student implements Comparable<Student> {
 7     private String name;
 8     private int age;
 9 
10     public Student() {
11         super();
12     }
13 
14     public Student(String name, int age) {
15         super();
16         this.name = name;
17         this.age = age;
18     }
19 
20     public String getName() {
21         return name;
22     }
23 
24     public void setName(String name) {
25         this.name = name;
26     }
27 
28     public int getAge() {
29         return age;
30     }
31 
32     public void setAge(int age) {
33         this.age = age;
34     }
35 
36     @Override
37     public int compareTo(Student s) {
38         // return 0;
39         // return 1;
40         // return -1;
41 
42         // 这里返回什么,其实应该根据我的排序规则来做
43         // 按照年龄排序,主要条件
44         int num = this.age - s.age;
45         // 次要条件
46         // 年龄相同的时候,还得去看姓名是否也相同
47         // 如果年龄和姓名都相同,才是同一个元素
48         int num2 = num == 0 ? this.name.compareTo(s.name) : num;
49         return num2;
50     }
51 }

 

(2)测试类TreeSetDemo2.java:

 1 package cn.itcast_05;
 2 
 3 import java.util.TreeSet;
 4 
 5 /*
 6  * TreeSet存储自定义对象并保证排序和唯一。
 7  * 
 8  * A:你没有告诉我们怎么排序
 9  *         自然排序,按照年龄从小到大排序
10  * B:元素什么情况算唯一你也没告诉我
11  *         成员变量值都相同即为同一个元素
12  */
13 public class TreeSetDemo2 {
14     public static void main(String[] args) {
15         // 创建集合对象
16         TreeSet<Student> ts = new TreeSet<Student>();
17 
18         // 创建元素
19         Student s1 = new Student("linqingxia", 27);
20         Student s2 = new Student("zhangguorong", 29);
21         Student s3 = new Student("wanglihong", 23);
22         Student s4 = new Student("linqingxia", 27);
23         Student s5 = new Student("liushishi", 22);
24         Student s6 = new Student("wuqilong", 40);
25         Student s7 = new Student("fengqingy", 22);
26 
27         // 添加元素
28         ts.add(s1);
29         ts.add(s2);
30         ts.add(s3);
31         ts.add(s4);
32         ts.add(s5);
33         ts.add(s6);
34         ts.add(s7);
35 
36         // 遍历
37         for (Student s : ts) {
38             System.out.println(s.getName() + "---" + s.getAge());
39         }
40     }
41 }

运行效果,如下:

技术分享

Java基础知识强化之集合框架笔记45:Set集合之TreeSet存储自定义对象并遍历练习1(自然排序)

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4857767.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!