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());
                
            }
        }
    }
  • 相关阅读:
    【转】XP下安装IIS6.0的办法
    设计模式学习笔记十:单例模式(Singleton Pattern)
    linq学习笔记(2):DataContext
    设计模式学习笔记十二:桥接模式(Bridge Pattern)
    英文版c#数据结构
    linq学习笔记(3):Where
    一步步学习WCF(1):Hello
    linq学习笔记(5):Count/Sum/Min/Max/Avg
    [转]Asp.Net 面试题目收集
    从谷歌公司发现的十个至理名言
  • 原文地址:https://www.cnblogs.com/zywf/p/4734694.html
Copyright © 2011-2022 走看看