集合排序 重写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()); } });