All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.hugh.util.ListUtils Maven / Gradle / Ivy

The newest version!
package com.github.hugh.util;

import com.github.hugh.exception.ToolboxException;
import com.google.common.base.CharMatcher;
import com.google.common.base.Splitter;
import com.google.common.collect.Lists;

import java.util.Collection;
import java.util.List;

/**
 * List工具类
 *
 * @author hugh
 * @version 1.0.0
 */
public class ListUtils {

    private ListUtils() {
    }

    /**
     * 替换字符串中的[]、"、 "、符号表达式
     */
    private static final CharMatcher LIST_CHAR_MATCHER = CharMatcher.anyOf("[]\" \"");

    /**
     * 判断集合是否为null或者集合内元素空
     *
     * @param collection 集合
     * @param         泛型
     * @return boolean {@code true} 空
     */
    public static  boolean isEmpty(Collection collection) {
        return collection == null || collection.isEmpty();
    }

    /**
     * 判断集合不为空
     *
     * @param collection 集合
     * @param         泛型
     * @return boolean {@code true} 有元素
     */
    public static  boolean isNotEmpty(Collection collection) {
        return !isEmpty(collection);
    }

    /**
     * Google guava list数据分页
     * 
    *
  • 注:切割后是根据总集合内的下标获取值、所以page是从0开始
  • *
* * @param originList 数据 * @param page 页数 * @param size 条数 * @return List 切割后的list * @since 1.1.0 */ public static List guavaPartitionList(List originList, int page, int size) { if (isEmpty(originList)) { throw new ToolboxException("数据不能为空!"); } List> pagedList = Lists.partition(originList, size);//根据条数切割成多个list return pagedList.get(page);//根据下标(分页)对应的数据 } /** * Google guava 将字符串数组转 List *

默认通过,作为分隔符转成List,并置空[]与"符号

*

不支持多级嵌套list转换

* * @param string 字符串 ["a","b"] * @return List * @since 1.6.10 */ public static List guavaStringToList(String string) { return guavaStringToList(string, ","); } /** * Google guava 将字符串数组转 List *

并置空[]与"符号

* * @param string 字符串 ["a","b"] * @param separator 分隔符 * @return List * @since 1.6.11 */ public static List guavaStringToList(String string, String separator) { return guavaStringToList(string, separator, LIST_CHAR_MATCHER); } /** * Google guava 将字符串数组转 List *

根据指定的分隔符进行切割,并置空[]与"符号

*

1.6.10 重构

* * @param string 字符串 ["a","b"] * @param separator 分隔符 * @param charMatcher 字符匹配方式 * @return List * @since 1.1.0 */ public static List guavaStringToList(String string, String separator, CharMatcher charMatcher) { return Splitter.on(separator) .trimResults()//去除前后空格 .trimResults(charMatcher) .omitEmptyStrings()//用于去除为空格的分割结果 .splitToList(string); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy