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());
}
}
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());
}
}