zoukankan      html  css  js  c++  java
  • java比较器Comparator 使用

    PresonDemo

    package cn.stat.p5.person.demo;
    
    public class PresonDemo implements Comparable  {
    
        private String name;
        private int age;
        
        /**
         * @param args
         */
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public void outPrint()
        {
            
            System.out.println(this.age+".."+this.name);
        }
        public PresonDemo(String name, int age) {
        
            this.name = name;
            this.age = age;
        }
        //TreeSet();为空时,实列类内部比较器
        @Override
        public int compareTo(Object o) {
            // TODO Auto-generated method stub
            PresonDemo p=(PresonDemo)o;
            if(p.age<this.age)
                return 1;
            if(p.age>this.age)
                return-1;
            return 0;
        }
    
    }

    比较器CompartorbyName

    /**
     * 根据名子比较返回顺序
     */
    package cn.stat.p6.arraylist.demo;
    
    import java.util.Comparator;
    
    import cn.stat.p5.person.demo.PresonDemo;
    
    /**
     * @author Administrator
     *
     */
    public class CompartorbyName implements Comparator {
    
        /* (non-Javadoc)
         * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
         */
        @Override
        public int compare(Object o1, Object o2) {
            // TODO Auto-generated method stub
            PresonDemo p1=(PresonDemo)o1;
            PresonDemo p2=(PresonDemo)o2;
            int temp=p1.getName().compareTo(p2.getName());
            return temp==0?p1.getAge()-p2.getAge():temp;
        }
    
    }

    TreeSetDemo

    package cn.stat.p6.arraylist.demo;
    import cn.stat.p5.person.demo.PresonDemo;
    import java.util.Iterator;
    import java.util.TreeSet;
    import java.util.ArrayList;
    
    
    
    
    
    public class TreeSetDemo {
     
        public static void main(String[] args) {
            TreeSet ts=new TreeSet(new CompartorbyName()); //比较器   
            
            ts.add(new PresonDemo("list1",2));    
            ts.add(new PresonDemo("list9",2));    
            ts.add(new PresonDemo("list7",2));    
            ts.add(new PresonDemo("list4",2));    
            ts.add(new PresonDemo("list5",2));    
            Iterator<PresonDemo> it=ts.iterator();
            while(it.hasNext())
            {
                PresonDemo p=(PresonDemo)it.next();
                System.out.println(p.getName()+"  "+p.getAge());
                
            }
        }
    }
  • 相关阅读:
    解决VS控制台窗口自动关闭问题
    ZOJ1003:Crashing Balloon(dfs)
    POJ2607:Fire Station(SPFA+枚举)
    C语言在屏幕上输出玫瑰花图片
    HRBUST
    UVA10182: Bee Maja (模拟)
    洛谷P1144: 最短路计数(bfs)
    (转载)MySQL LIKE 用法:搜索匹配字段中的指定内容
    (转载)[MySQL技巧]INSERT INTO… ON DUPLICATE KEY UPDATE
    (转载)INSERT INTO .. ON DUPLICATE KEY 语法与实例教程
  • 原文地址:https://www.cnblogs.com/zywf/p/4734694.html
Copyright © 2011-2022 走看看