集合排序 重写compare 方法

数据排序输出 在应用中一般都会用到,用集合保存数据很是常见,一般两种形式:1. List 数组形式的集合  2. Map 键值对形式的集合 

对于第一种:都是Collection接口衍生出来的, List 保存的对象可重复  Set 不可重复;数据排序 可以构造比较器 按对象中某个元素来比较 

 

Collections.sort(guids,
                new Comparator<OnlineGuidGuidDetailResponse.Resource>() {

                    @Override
                    public int compare(Resource lhs, Resource rhs) {
                        if (lhs.getTime() != null && rhs.getTime() != null) {
                            if (lhs.getTime().before(rhs.getTime())) {
                                return -1;
                            } else {
                                return 1;
                            }
                        }
                        return 0;
                    }
                });

对于第二种:Map 主要有 HashMap 和 TreeMap ,HashMap 无序,TreeMap 按key键值 排序,但两者都不能重复保存相同对象的键值 key 

而IdentityHashMap可以保存key值(相同的对象,不一样的地址)相同的数据 。Map 排序一样可用比较器 套用 List的自定义排序

List<Map.Entry<String, View>> info = new ArrayList<Map.Entry<String, View>>(
                viewStack.entrySet());
        Collections.sort(info, new Comparator<Map.Entry<String, View>>() {

            @Override
            public int compare(Entry<String, View> lhs, Entry<String, View> rhs) {
                // TODO Auto-generated method stub
                return Integer.parseInt(lhs.getKey())
                        - Integer.parseInt(rhs.getKey());
            }

        });

 

 

 

posted on 2013-07-19 16:32  杀#嘻哈  阅读(1911)  评论(0编辑  收藏  举报

导航