zoukankan      html  css  js  c++  java
  • TreeSet 和TreeMap 排序

    TreeSet 有两种排序方式 
    1. Java.lang.Comparble+compareTo 
    new TreeSet() 
    用这种方法必须要求实体类实现Comparable接口,也就是说要求添加到TreeSet中的元素是可排序的 
    2. java.util.Comparator +compare 
    举个TreeSet栗子:
    package com.etc.test;
    import java.util.Comparator;
    import java.util.TreeSet;
    import com.etc.entity.Person;
    public class TreeSetDemo {
    public static void main(String[] args) {
    	Person p1=new Person("depp",100);
    	Person p2=new Person("tom",90);
    	Person p3=new Person("jack",50);
    	TreeSet<Person> ts=new TreeSet<Person>(
    			new Comparator<Person>() {
    				public int compare(Person o1,Person o2){
    					return o1.getHandsome()-o2.getHandsome();//升序
    				}
    			}
    	);
    	ts.add(p1);
    	ts.add(p2);
    	ts.add(p3);
    	System.out.println(ts);
    	/*
    	 * 排序结果没有改变,是因为TreeSet在添加元素的时候进行排序,需要注意,数据更改不会影响原来的顺序 
    还有一点需要注意的是,TreeSet中不可以数据重复,所以一般不修改数据,为了确保这一点,我们可以在Person类为属性加上final关键字,删除setter方法
    	 */
    	p3.setHandsome(200);//改变数据,排序不会改变
    	System.out.println(ts);
    }
    }
    
    举个TreeMap栗子:
    package com.etc.test;
    
    import java.util.Comparator;
    import java.util.Set;
    import java.util.TreeMap;
    import java.util.TreeSet;
    
    import com.etc.entity.Person;
    
    public class TreeMapDemo {
    public static void main(String[] args) {
    	Person p1=new Person("depp",100);
    	Person p2=new Person("tom",90);
    	Person p3=new Person("jack",50);
    	TreeMap<Person, String> tm=new TreeMap<Person, String>(new Comparator<Person>() {
    		public int compare(Person o1,Person o2)
    		{
    			return o1.getHandsome()-o2.getHandsome();//升序
    		}
    	});
    	tm.put(p1, "ttt");
    	tm.put(p2, "ttt");
    	tm.put(p3, "ttt");
    	System.out.println(tm);
    	//也可以用set进行输出    TreeMap也是在添加元素时进行排序
    	Set<Person> set=tm.keySet();
    	System.out.println(set);
    }
    }
    

      

  • 相关阅读:
    模板网站
    用servlet和jsp做探索数据库
    Hibernate和jsp做数据库单表的增删改查
    拦截器
    校验器-对提交的用户名和密码进行过滤
    使用my exclipse对数据库进行操作(4)
    如何正确关闭游戏服务器
    Ehcache 入门详解
    自动重置 Language Level默认为5与 Java Complier默认为1.5
    洪均生谈初学者练习(怎样认识太级拳和怎样进行练习)
  • 原文地址:https://www.cnblogs.com/ipetergo/p/6288849.html
Copyright © 2011-2022 走看看