标签:
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