冒泡排序实现: package com.gcx.demo; /** * 冒泡排序 * @author Administrator * */ public class Demo { public static void main(String[] args) { int arr[]=new int[]{12,13,14,15,23,24,35}; for(int i=0;i<arr.length-1;i++){ for(int j=0;j<arr.length-1-i;j++){ if(arr[j]<arr[j+1]){ int temp=0; temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(int a:arr){ System.out.print(a+"\t"); } } } 实体类:java.lang.Comparable +compareTo package com.gcx.demo; public class Work implements java.lang.Comparable<work>{ private String type; private Double salary; public Work() { // TODO Auto-generated constructor stub } public Work(String type, Double salary) { super(); this.type = type; this.salary = salary; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Double getSalary() { return salary; } public void setSalary(Double salary) { this.salary = salary; } @Override public String toString() { return "Work [type=" + type + ", salary=" + salary + "]"; } @Override public int compareTo(Work o) { return -(this.salary>o.getSalary()?1:(this.salary==o.getSalary()?0:-1)); } } </work> package com.gcx.demo; import java.util.TreeSet; public class TreeSetDemo2 { public static void main(String[] args) { Work w2=new Work("农民工2",2000.0); Work w1=new Work("农民工1",3000.0); Work w=new Work("农民工",12000.0); Work w3=new Work("农民工3",1000.0); TreeSet<work> set=new TreeSet<work>(); set.add(w); set.add(w1); set.add(w2); set.add(w3); System.out.println(set); } } </work></work> 业务排序类:解耦 java.util.Comparator +compare package com.gcx.demo; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Person { private final String name;//名称 private final int handsome;//帅气指数 public Person() { name =null; handsome =0; } public Person(String name, int handsome) { super(); this.name = name; this.handsome = handsome; } public String getName() { return name; } public int getHandsome() { return handsome; } @Override public String toString() { return "姓名:"+this.name+",帅气指数:"+this.handsome+"\n"; } } package com.gcx.demo; import java.util.TreeSet; /** * 提供了 解耦的方式:业务排序类,独立于实体 * TreeSet 在添加数据时自动排序 ,数据修改不会影响原本的排序, * 尽量不要修改数据,可能会造成重复,有序不可重复 * java.util.Comparator +compare * @author Administrator * */ public class TreeSetDemo { /** * @param args */ public static void main(String[] args) { Person p1 =new Person("您",100); Person p2 =new Person("我",1000); Person p3 =new Person("张三",1200); Person p4 =new Person("李四",50); //依次存放到TreeSet容器中,使用排序的业务类(匿名内部类) TreeSet<person> persons =new TreeSet<person>( new java.util.Comparator<person>(){ @Override public int compare(Person o1, Person o2) { return -(o1.getHandsome()-o2.getHandsome()); } } ); persons.add(p1); //TreeSet 在添加数据时排序 persons.add(p2); persons.add(p3); persons.add(p4); System.out.println(persons); /* //改变数据 p4.setHandsome(100); p4.setName("您"); */ //p4 与p1 内容重复 System.out.println(persons); } } </person></person></person>