美文网首页
List集合去重复

List集合去重复

作者: jarWorker | 来源:发表于2018-07-31 13:47 被阅读0次

java.util

ListUtil类


package test;

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

public class ListUtil {
    /**
     * List集合去重复值
     * @author jarWorker
     * @param list
     * @return List<?>
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static List<?> collectionWithoutRepetition(List<?> list) throws Exception {
        // 创建set并添加list中的元素,保征无重复元素
        Set set = new HashSet<>(list);
        list.clear();// 清空list
        list.addAll(set);//
        return list;
    }
    
    /**
     * List集合去重复值并排序
     * @author jarWorker
     * @param list
     * @return List<?>
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static List<?> collectionWithoutRepetitionAndSort(List<?> list) throws Exception {
        // 创建set并添加list中的元素,保证征无重复元素并排序
        Set set = new TreeSet<>(list);
        list.clear();// 清空list
        list.addAll(set);//
        return list;
    }
    
}

Student类


package test;

public class Student {
    private String name;
    private String sex;
    private Integer age;

    public Student() {
        super();
    }
    
    public Student(String name, String sex, Integer age) {
        super();
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}

测试demo


package test;

import java.util.ArrayList;
import java.util.List;
import org.junit.Test;

/**
 * 
 * @author jarWorker
 *
 */
public class test {
    @SuppressWarnings("unchecked")
    @Test
    public void testList() throws Exception {
        String xiaoqiang = "小强";
        String xiaoLi = "小丽";
        String xiaoMing = "小明";
        String xiaoHong = "小红";
        List<String> list = new ArrayList<>();
        list.add(xiaoMing);
        list.add(xiaoHong);
        list.add(xiaoLi);
        list.add(xiaoqiang);
        list.add(xiaoMing);
        System.out.println("未去重集合="+list);
        List<String> newList = (List<String>) ListUtil.collectionWithoutRepetition(list);
        System.out.println("去重复结果="+newList);
        List<String> sortList = (List<String>) ListUtil.collectionWithoutRepetitionAndSort(newList);
        System.out.println("去重复并按treeSet排序结果="+sortList);
    }

    @SuppressWarnings("unchecked")
    @Test
    public void testObjectList() throws Exception {
        Student xiaoqiang=new Student("小强","男",11);
        Student xiaoLi=new Student("小丽","女",11);
        Student xiaoMing=new Student("小明","男",11);
        Student xiaoHong=new Student("小红","女",11);
        List<Student> list = new ArrayList<>();
        list.add(xiaoMing);
        list.add(xiaoHong);
        list.add(xiaoLi);
        list.add(xiaoqiang);
        list.add(xiaoMing);
        System.out.println("未去重集合="+list);
        List<Student> newList = (List<Student>) ListUtil.collectionWithoutRepetition(list);
        System.out.println("去重复结果="+newList);
        //不能对对象进行TreeSet排序
        /*List sortList = ListUtil.collectionWithoutRepetitionAndSort(newList);
        System.out.println(sortList);*/
    }
}

Console:输出


未去重集合=[小明, 小红, 小丽, 小强, 小明]
去重复结果=[小强, 小明, 小丽, 小红]
去重复并按treeSet排序结果=[小丽, 小强, 小明, 小红]


未去重集合=[test.Student@4459eb14, test.Student@5a2e4553, test.Student@28c97a5, test.Student@6659c656, test.Student@4459eb14]
去重复结果=[test.Student@28c97a5, test.Student@4459eb14, test.Student@5a2e4553, test.Student@6659c656]

相关文章

网友评论

      本文标题:List集合去重复

      本文链接:https://www.haomeiwen.com/subject/epthvftx.html