/*
java.util.Set;
java.util.SortedSet;无序不可重复,凡是存进去的元素可以按照元素的大小顺序自动排序
java.util.TreeSet;
*/
public class SortedSetTest01{
public static void main(String[] args){
//创建集合
SortedSet ss = new TreeSet();
//Integer
ss.add(10);//自动装箱
ss.add(20);
ss.add(15);
ss.add(30);
ss.add(25);
ss.add(9);
//遍历
Iterator it = ss.iterator();
while(it.hasNext()){
Object element = it.next();
System.out.println(element.toString);
}
//String
SortedSet strs = new TreeSet();
strs.add("JACK");
strs.add("SUN");
strs.add("COOK");
strs.add("LUCK");
strs.add("KING");
//遍历
Iterator it = strs.iterator();
while(it.hasNext()){
Object o = it.next();
System.out.println(o);
}
//日期
Sring st1 = "2008-08-08";
Sring st2 = "2009-08-08";
Sring st3 = "2008-09-08";
Sring st4 = "2008-08-09";
Sring st5 = "2012-08-08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date t1 = sdf.parse(st1);
Date t2 = sdf.parse(st2);
Date t3 = sdf.parse(st3);
Date t4 = sdf.parse(st4);
Date t5 = sdf.parse(st5);
//添加
SortedSet times = new TreeSet();
times.add(t1);
times.add(t2);
times.add(t3);
times.add(t4);
times.add(t5);
it = times.iterator();
while(it.hasNext()){
Object element = it.next();
Date d = (Date)element;
System.out.println(sdf.format(d));
}
}
}
/*
SortedSet集合存储元素为什么可以自动排序
*/
public class SortedSetTest02{
public static void main(String[] args){
SortedSet user = new TreeSet();
User u1 = new User(15);
User u2 = new User(16);
User u3 = new User(25);
User u4 = new User(13);
User u5 = new User(11);
//添加元素
User.add(u1);
User.add(u2);
User.add(u3);
User.add(u4);
User.add(u5);
//遍历
Iterator it = user.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class User immplements Comparable{
//String name
int age;
User(int age){
this.age = age;
}
public String toString(){
return "User[age="+age+"]";
}
//实现java.lang.Comparable;接口中的compareTo方法
//该方法程序员负责实现,SUN提供的程序已经调用了该方法
//需求,按照User的age排序
public int compareTo(Object o){
//编写一个比较规则
int age1 = this.age;
int age2 = ((User)o).age;
return age2-age1;
}
}
/*
让SortedSet集合做到排序还有另外一种方式:java.util.Comparator;
单独编写一个比较器。
*/
public class SortedSetTest03{
public static void main(String[] agrs){
//创建一个TreeSet集合的时候提供一个比较器
SortedSet products = new TreeSet(New ProductComparator());
Product p1 = new ProDuct(3.4);
Product p1 = new ProDuct(4.0);
Product p1 = new ProDuct(3.0);
Product p1 = new ProDuct(2.0);
Product p1 = new ProDuct(5.0);
//添加元素
products.add(p1);
products.add(p2);
products.add(p3);
products.add(p4);
products.add(p5);
//遍历
Iterator it = products.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}
class Product{
double price;
Product(double price){
this.price = price;
}
public String toString(){
return price + "";
}
}
//单独编写一个比较强
class ProductComparator implements Comparator{
public int compare(Object o1,Object o2){
double price1 = ((Product)o1).price;
double price2 = ((Product)o2).price;
if(price1 == price2){
return 0;//如果是0的话这俩对象就被合并了
}else if( price1> price2){
return -1;
}else{
return 1;
}
}
}
参考:https://www.bilibili.com/video/BV1kx411h7jv