您的位置:首页 > 编程语言 > Java开发

java Compare

2015-10-21 11:40 387 查看
package com.study.util;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Comparator;

import java.util.HashMap;

import java.util.List;

public class MyCompare {

    private static class MyComparator implements Comparator<HashMap<?, ?>> {

        private String mSortingKey;

        public MyComparator(String sortingKey) {

            mSortingKey = sortingKey;

        }

        public void setSortingKey(String sortingKey) {

            mSortingKey = sortingKey;

        }

        public int compare(HashMap<?, ?> map1, HashMap<?, ?> map2) {

            Object value1 = map1.get(mSortingKey);

            Object value2 = map2.get(mSortingKey);

            /*

             * This should never happen, but just in-case, put non-comparable

             * items at the end.

             */

            if (!isComparable(value1)) {

                return isComparable(value2) ? 1 : 0;

            } else if (!isComparable(value2)) {

                return -1;

            }

            return ((Comparable) value1).compareTo(value2);

        }

        private boolean isComparable(Object value) {

            return (value != null) && (value instanceof Comparable);

        }

    }

    

    public static void main(String[] args) {

        

        List<HashMap<String,String>> list=new ArrayList<HashMap<String,String>>();

        

        HashMap map1=new HashMap();

        map1.put("pinyin", "zg");        

        

        HashMap map2=new HashMap();

        map2.put("pinyin", "anquan");        

        

        HashMap map3=new HashMap();

        map3.put("pinyin", "rb");        

        

        HashMap map4=new HashMap();

        map4.put("pinyin", "meiguo");        

        

        list.add(map1);

        list.add(map2);

        list.add(map3);

        list.add(map4);

        

        Collections.sort(list, new MyComparator("pinyin"));

        

        System.out.println(list);

        

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: