ArrayList去除重复数据,排序

来源:互联网 发布:java zip压缩 加密 编辑:程序博客网 时间:2024/05/14 03:13

去除重复数据

包括保持顺序和不保持顺序两个方法

注意:因为借用了HashSet,所以判断重复需要重写 T 的hashCode()和equals()方法

public class ListTools {    /**     * 删除重复元素,保持顺序     * @param list     */    public static <T> void removeDuplicateWithOrder(List<T> list) {        Set<T> set = new HashSet<T>();        List<T> newList = new ArrayList<T>();        for (Iterator<T> iter = list.iterator(); iter.hasNext();) {            T element = iter.next();            if (set.add(element))                newList.add(element);        }        list.clear();        list.addAll(newList);    }    /**     * 删除重复元素,不保持顺序     * @param list     */    public   static <T>  void  removeDuplicate(List<T> list)   {        HashSet<T> h  =   new  HashSet<T>(list);        list.clear();        list.addAll(h);    }}

排序

使用Collections.sort(rootList, new ComparatorPermissions());public class ComparatorPermissions implements Comparator<Permissions>{    @Override    public int compare(Permissions o1, Permissions o2) {        return o2.getOrderSort().compareTo(o1.getOrderSort());//注意返回顺序,升序还是降序,两个调换位置即可    }}
0 0