
com.weicoder.common.lang.Lists Maven / Gradle / Ivy
package com.weicoder.common.lang;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import com.weicoder.common.util.ArrayUtil;
import com.weicoder.common.util.EmptyUtil;
/**
* List的帮助类
* @author WD
*/
public final class Lists {
/**
* 获得指定索引的list元素 list为空返回null 返回指定索引的类 如果索引小于0为0 大于列表长度返回最后一个类
* @param list 元素列表
* @param i 索引
* @param 泛型
* @return 处理后的元素
*/
public static E get(List list, int i) {
return EmptyUtil.isEmpty(list) ? null
: i < 0 ? list.get(0) : i >= list.size() ? list.get(list.size() - 1) : list.get(i);
}
/**
* 判断是否列表
* @param obj 对象
* @return 是否列表
*/
public static boolean isList(Object obj) {
return !EmptyUtil.isEmpty(obj) && obj instanceof List>;
}
/**
* 获得List实例 默认初始化大小为10
* @param 泛型
* @return List
*/
public static List newList() {
return new ArrayList();
}
/**
* 获得List实例
* @param size 初始化大小
* @param 泛型
* @return List
*/
public static List newList(int size) {
return new ArrayList(size < 1 ? 1 : size);
}
/**
* 获得List实例
* @param es 初始化的数组
* @param 泛型
* @return List
*/
@SafeVarargs
public static List newList(E... es) {
return newList(ArrayUtil.toList(es));
}
/**
* 获得List实例
* @param c 初始化的集合
* @param 泛型
* @return List
*/
public static List newList(Collection c) {
return c == null ? new ArrayList() : new ArrayList(c);
}
/**
* 获得List实例
* @param c 初始化的集合
* @param 泛型
* @return List
*/
@SafeVarargs
public static List newList(Collection... c) {
// 获得一个列表
List list = newList();
// 循环集合
for (int i = 0; i < c.length; i++) {
// 添加到列表中
if (!EmptyUtil.isEmpty(c[i])) {
list.addAll(c[i]);
}
}
// 返回列表
return list;
}
/**
* 返回列表从begin开始返回end个元素
* @param list 元素列表
* @param begin 开始包含
* @param end 结束不包含
* @param 泛型
* @return 返回获得元素列表
*/
public static List subList(List list, int begin, int end) {
// 如果列表为空返回一个空列表
if (EmptyUtil.isEmpty(list)) {
return list;
}
// 获得元列表大小
int size = list.size();
// 如果开始为小于1 介绍大于列表长度
if (begin < 1 && end >= size) {
return list;
}
// 判断如果begin大于等于元素列表大小 返回原列表
if (begin > size) {
return emptyList();
}
// 判断begin
begin = begin < 0 ? 0 : begin;
// 如果begin>end
end = begin > end ? begin + end : end;
// 判断end
end = end < 1 || end > size ? size : end;
// 返回列表
return list.subList(begin, end);
}
/**
* 给List排序
* @param list 要排序的List
* @param 泛型
* @return 排完序的List
*/
public static > List sort(List list) {
// 排序
Collections.sort(list);
// 返回list
return list;
}
/**
* 调用每个元素的toString()方法
* @param list 列表
* @return 字符串
*/
public static String toString(List> list) {
return ArrayUtil.toString(toArray(list));
}
/**
* 把一个列表变成数组
* @param list 列表
* @param 泛型
* @return 一个不可变的空List
*/
@SuppressWarnings("unchecked")
public static E[] toArray(List list) {
// 判断列表不为空
if (EmptyUtil.isEmpty(list)) {
return ArrayUtil.getArray();
}
// 返回数组
return (E[]) list.toArray(ArrayUtil.getArray(list.get(0).getClass(), list.size()));
}
/**
* 把一个列表变成数组
* @param list 列表
* @param clazz 类
* @param 泛型
* @return 一个不可变的空List
*/
public static E[] toArray(List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy