|
|
@@ -21,6 +21,7 @@ public class ListUtil {
|
|
|
public static <T> T getItem(List<T> list, int index) {
|
|
|
return hasIndex(list, index) ? list.get(index) : null;
|
|
|
}
|
|
|
+
|
|
|
public static <T> T getLast(List<T> list) {
|
|
|
int size = ListUtil.size(list);
|
|
|
return size > 0 ? list.get(-1 + size) : null;
|
|
|
@@ -35,7 +36,7 @@ public class ListUtil {
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
- public static <R,V> int addAll(Conversion<R, V> conversion, List<V> list, R...elements) {
|
|
|
+ public static <R, V> int addAll(Conversion<R, V> conversion, List<V> list, R... elements) {
|
|
|
int length = elements.length;
|
|
|
for (int i = 0; i < length; i++) {
|
|
|
V v = conversion.convert(elements[i], i);
|
|
|
@@ -43,7 +44,8 @@ public class ListUtil {
|
|
|
}
|
|
|
return length;
|
|
|
}
|
|
|
- public static <R,V> int addAll(Conversion<R, V> conversion, List<V> list, List<R> elements) {
|
|
|
+
|
|
|
+ public static <R, V> int addAll(Conversion<R, V> conversion, List<V> list, List<R> elements) {
|
|
|
int size = elements.size();
|
|
|
for (int i = 0; i < elements.size(); i++) {
|
|
|
V v = conversion.convert(elements.get(i), i);
|
|
|
@@ -51,15 +53,17 @@ public class ListUtil {
|
|
|
}
|
|
|
return size;
|
|
|
}
|
|
|
- public static <T> int addAll(List<T> list, T...elements) {
|
|
|
+
|
|
|
+ public static <T> int addAll(List<T> list, T... elements) {
|
|
|
return addAll(list, asList(elements));
|
|
|
}
|
|
|
+
|
|
|
public static <T> int addAll(List<T> list, List<? extends T> elements) {
|
|
|
int count = 0;
|
|
|
- if(list == null){
|
|
|
+ if (list == null) {
|
|
|
list = emptyList();
|
|
|
}
|
|
|
- if(elements != null) {
|
|
|
+ if (elements != null) {
|
|
|
for (T element : elements) {
|
|
|
int index = list.indexOf(element);
|
|
|
if (index != -1) {
|
|
|
@@ -71,12 +75,13 @@ public class ListUtil {
|
|
|
}
|
|
|
return count;
|
|
|
}
|
|
|
+
|
|
|
public static <T> int addAll(List<T> list, List<? extends T> elements, int maxCount) {
|
|
|
int count = 0;
|
|
|
- if(list == null){
|
|
|
+ if (list == null) {
|
|
|
list = emptyList();
|
|
|
}
|
|
|
- if(elements != null) {
|
|
|
+ if (elements != null) {
|
|
|
for (T element : elements) {
|
|
|
int index = list.indexOf(element);
|
|
|
if (index != -1) {
|
|
|
@@ -84,7 +89,37 @@ public class ListUtil {
|
|
|
} else if (list.add(element)) {
|
|
|
count++;
|
|
|
}
|
|
|
- if(count >= maxCount)//最多只加maxCount条数据
|
|
|
+ if (count >= maxCount)//最多只加maxCount条数据
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static <T> int addAllItem(List<T> list, List<? extends T> elements) {
|
|
|
+ int count = 0;
|
|
|
+ if (list == null) {
|
|
|
+ list = emptyList();
|
|
|
+ }
|
|
|
+ if (elements != null) {
|
|
|
+ for (T element : elements) {
|
|
|
+ list.add(element);
|
|
|
+ count++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return count;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static <T> int addAllItem(List<T> list, List<? extends T> elements, int maxCount) {
|
|
|
+ int count = 0;
|
|
|
+ if (list == null) {
|
|
|
+ list = emptyList();
|
|
|
+ }
|
|
|
+ if (elements != null) {
|
|
|
+ for (T element : elements) {
|
|
|
+ list.add(element);
|
|
|
+ count++;
|
|
|
+ if (count >= maxCount)//最多只加maxCount条数据
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -100,13 +135,14 @@ public class ListUtil {
|
|
|
}
|
|
|
|
|
|
@SafeVarargs
|
|
|
- public static <T> ArrayList<T> asList(T...items) {
|
|
|
+ public static <T> ArrayList<T> asList(T... items) {
|
|
|
ArrayList<T> list = emptyList();
|
|
|
Collections.addAll(list, items);
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
@SafeVarargs
|
|
|
- public static <T,R> ArrayList<R> asList(CallBack<T, R> callBack, T...items) {
|
|
|
+ public static <T, R> ArrayList<R> asList(CallBack<T, R> callBack, T... items) {
|
|
|
ArrayList<R> list = emptyList();
|
|
|
for (T t : items) {
|
|
|
R r = callBack.call(t);
|
|
|
@@ -116,12 +152,12 @@ public class ListUtil {
|
|
|
}
|
|
|
|
|
|
public static <T> List<T> removeItem(List<T> list, CallBack<T, Boolean> callBack) {
|
|
|
- if(isEmpty(list)){
|
|
|
+ if (isEmpty(list)) {
|
|
|
return null;
|
|
|
}
|
|
|
List<T> removeList = emptyList();
|
|
|
for (T t : list) {
|
|
|
- if(callBack.call(t))
|
|
|
+ if (callBack.call(t))
|
|
|
removeList.add(t);
|
|
|
}
|
|
|
list.removeAll(removeList);
|
|
|
@@ -129,12 +165,13 @@ public class ListUtil {
|
|
|
}
|
|
|
|
|
|
public static <T> void set(List<T> list, T t, int position) {
|
|
|
- if(hasIndex(list, position))
|
|
|
+ if (hasIndex(list, position))
|
|
|
list.set(position, t);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 清除末尾的空数据
|
|
|
+ *
|
|
|
* @param list
|
|
|
*/
|
|
|
public static <T> void removeNull(List<T> list) {
|
|
|
@@ -146,12 +183,12 @@ public class ListUtil {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- public static <T> void removeAll(List<T> allList, List<T> removeList) {
|
|
|
- if(allList != null && removeList != null)
|
|
|
+ public static <T> void removeAll(List<T> allList, List<T> removeList) {
|
|
|
+ if (allList != null && removeList != null)
|
|
|
allList.removeAll(removeList);
|
|
|
}
|
|
|
|
|
|
- public static interface CallBack<I, R>{
|
|
|
+ public static interface CallBack<I, R> {
|
|
|
public R call(I i);
|
|
|
}
|
|
|
}
|