1. 程式人生 > >集合去重、記憶體中排序的工具類

集合去重、記憶體中排序的工具類



import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

import java.util.*;

/**
 * Created by leixingbang on 2018/3/21.
 * 
 * 對集合進行操作的工具
 */
public class CollectionUtil<E> {
    /**
     * 對多個集合求並集,且去重
     *
     * @param args
     * @return
     */
    public List<E> getConvergence(List<E>... args) {
        Set<E> set = new HashSet<E>();
        for (List<E> arg : args) {
            set.addAll(arg);
        }
        List<E> convergenceLst = new ArrayList<>();
        convergenceLst.addAll(set);
        return convergenceLst;
    }

    /**
     * 在記憶體中對連結串列進行分頁
     *
     * @param lst
     * @param pageable
     * @return
     */
    public Page getPageableList(List<E> lst, Pageable pageable) {
        int start = pageable.getOffset();
        int end = (start + pageable.getPageSize()) > lst.size() ? lst.size() : (start + pageable.getPageSize());
        Page<E> pages = new PageImpl<E>(lst.subList(start, end), pageable, lst.size());
        return pages;
    }

}