TreeMap自定义排序进行遍历
1.第一种做法
public class TreeMapTest {
private static Set<String> keySet;
public static void main(String[] args) {
Map<String,String> map=new LinkedHashMap<String, String>();
map.put("id", "dfsafdajfjakfljaskfj");
map.put("name","cyz");
map.put("value", "25");
map.put("yap1","kaiguan1");
System.out.println(map.toString());
Set<String> set = map.keySet();
Iterator<String> iterator = set.iterator();
while(iterator.hasNext()) {
String next = iterator.next();
String name = map.get(next);
System.out.println(next+" "+name);
}
TreeMap<String,String> rf = new TreeMap<String,String>(new Comparator(){
@Override
public int compare(Object o1, Object o2) {
String a = (String)o1;
String b = (String)o2;
return -a.compareTo(b);
}
});
System.out.println("---------------------------下一步-------------------------");
rf.putAll(map);
Set<String> keySet2 = rf.keySet();
Iterator<String> iter2 = keySet2.iterator();
while(iter2.hasNext()) {
String next = iter2.next();
String name = rf.get(next);
System.out.println(next+" "+name);
}
}
}
1.第二种做法
public class UserVo implements Comparable<UserVo>{
private int age;
private String name;
private String sex;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public UserVo(String name, int age,String sex) {
super();
this.age = age;
this.name = name;
this.sex=sex;
}
@Override
public String toString() {
return "UserVo [age=" + age + ", name=" + name + ",sex="+sex+"]";
}
@Override
public int compareTo(UserVo o) {
if(age>o.age) {
return 1;
}else if(age<o.age) {
return -1;
}
return this.age;
}
}
import java.util.Set;
import java.util.TreeMap;
public class TestUser {
public static void main(String[] args) {
TreeMap<Object, String> treemap=new TreeMap<Object, String>();
treemap.put(new UserVo("张三",24,"男"),"张三");
treemap.put(new UserVo("李四",23,"男"),"李四");
treemap.put(new UserVo("王麻子",22,"男"),"王麻子");
treemap.put(new UserVo("李五",21,"男"),"李五");
Set<Object> keySet = treemap.keySet();
for (Object obj : keySet) {
System.out.println(obj.toString());
}
}
}