day15综合练习

import java.util.*;
class day15
{
 public static void main(String[] args)
 {
  //存入学生对象到treeset中,并保证元素不重复
  //使元素自身具备比较性
  //传入比较器
  TreeSet ts = new TreeSet<Student>(new StuCom());
  ts.add(new Student("张三",13));
  ts.add(new Student("李四",14));
  ts.add(new Student("张三",13));
  ts.add(new Student("李四",15));
  print(ts);
  //使用匿名内部类比较传入的字符串大小
  TreeSet ts2 = new TreeSet<String>(new Comparator<String>()
  {
   public int compare(String str1,String str2)
   {
    return str1.compareTo(str2);
   }
  });
  ts2.add("asdfa");
  ts2.add("ff");
  ts2.add("89ikjlj");
  for (Iterator<String> it = ts2.iterator();it.hasNext() ; )
  {
   System.out.println(it.next());
  }
  //按存入字符长度从大到小排序
  TreeSet ts3 = new TreeSet<String>(new Comparator<String>()
  {
   public int compare(String str1,String str2)
   {
    return -new Integer(str1.length()).compareTo(new Integer(str2.length()));
   }
  });
  ts3.add("adf");
  ts3.add("000000");
  ts3.add("f");
  for (Iterator it = ts3.iterator();it.hasNext() ; )
  {
   System.out.println(it.next());
  }
  System.out.println("Hello World!");
 }
 public static void print(TreeSet<Student> ts)
 {
  for (Iterator<Student> it = ts.iterator();it.hasNext(); )
  {
   Student stu = it.next();
   System.out.println(stu.getName()+stu.getAge());
  }
 }
}
class Student implements Comparable<Student>
{
 private String name;
 private int age;
 public String getName()
 {
  return name;
 }
 public int getAge()
 {
  return age;
 }
 Student(String name,int age)
 {
  this.age = age;
  this.name = name;
 }
 public int compareTo(Student stu)
 {
  if (this.name.equals(stu.name))
  {
   return new Integer(this.age).compareTo(stu.age);
  }
  return this.name.compareTo(stu.name);
 }
}
class StuCom implements Comparator<Student>
{
 public int compare(Student stu1,Student stu2)
 {
  if (stu1.getName().equals(stu2.getName()))
  {
   return stu1.getAge() - stu2.getAge();
  }
  return stu1.getName().compareTo(stu2.getName());
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值