| 限定符和类型 | 字段和说明 |
|---|---|
static java.time.LocalDateTime |
LocalDateTime2000_01_01 |
static Timestamp |
TIMESTAMP_NULL |
| 限定符 | 构造器和说明 |
|---|---|
protected |
GonglerUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> List<T> |
AllNotIn(Collection<T> input,
Collection<T> base) |
static <K,V> Map<K,V> |
AllNotIn(Map<K,V> input,
Map<K,V> base) |
static <A> Comparator<A> |
AnyComparator() |
static AutoCloseable |
AutoCloseable(ITask closeTask)
可以给关闭方法不叫close()的类增加try自动关闭的能力。
|
static double |
Avg(double... vals) |
static byte |
Byte(long val)
避免写2层括号 int a; byte b = toByte(b)+3;//byte b = ((byte)b)+3;
|
static <T> T |
CallWithCatchAny(Callable<T> task,
T defaultVal) |
static <T> T |
CallWithThrowAny(Callable<T> task) |
static int |
CheckIntRange(int val,
int min,
int max) |
static long |
CheckLongRange(long val,
long min,
long max) |
static void |
Close(AutoCloseable closeable) |
static void |
Commit(Connection conn) |
static <A> int |
CompareAny(A a1,
A a2) |
static int |
DecodeInt(String nm)
与Integer.decode()区别:1.
|
static List<Integer> |
DecodeIntegers(String str) |
static long |
DecodeLong(String nm)
与Long.decode()区别:前导0不再解析成8进制(BUG根源);增加0o八进制前导符;增加0b二进制前导符号。
|
static List<Long> |
DecodeLongs(String str) |
static java.time.Duration |
Duration(Runnable task) |
static <T> T[] |
emptyArray() |
static byte[] |
emptyByteArray() |
static int[] |
emptyIntArray() |
static long[] |
emptyLongArray() |
static String |
ExcludeEndOf(String str,
int charCount) |
static void |
ExecuteWithCatchAny(ITask task) |
static void |
ExecuteWithThrowAny(ITask task) |
static String |
Filled(int times,
char ch) |
static String |
Filled(int times,
CharSequence msg) |
static InputStream |
FilterInputStream(InputStream in,
java.util.function.IntUnaryOperator func) |
static OutputStream |
FilterOutputStream(OutputStream out,
java.util.function.IntUnaryOperator func) |
static int |
ForceToDayOfMonth(int year,
int month,
int dayOfMonth) |
static java.time.LocalDateTime |
ForceToLocalDateTime(int year,
int month,
int dayOfMonth,
int hour,
int minute,
int second) |
static <E> Iterable<E> |
ForEachFrom(ExceptionSupplier<E> sup)
仅用于for循环
|
static Charset |
GB18030() |
static Charset |
GBK() |
static long |
Giga(long val) |
static String |
GpsDoubleToString(double gps) |
static <T> Comparator<T> |
HashComparator() |
static String |
HHMM(java.time.LocalDateTime time) |
static String |
HHMM(long time) |
static String |
HHMMSS(java.time.LocalDateTime time) |
static String |
HHMMSS(long time) |
static <T> void |
IfNotNull(T param,
java.util.function.Consumer<T> mapper)
已过时。
|
static <T,R> R |
IfNotNull(T param,
java.util.function.Function<T,R> mapper,
R defaultValue)
已过时。
|
void |
ImportPropertiesToSystemIfNoExisted(Properties prop) |
static int |
Int(byte val) |
static int |
Int(double val) |
static int |
Int(long val)
避免写2层括号 int a; byte b = toByte(b)+3;//byte b = ((byte)b)+3;
|
static int |
IntForceRange(int val,
int min,
int max) |
static boolean |
IsEmptyString(String str) |
static boolean |
IsLinux() |
static boolean |
IsNotEmptyString(String str) |
static <E> Iterable<E> |
IterableAdapter(Enumeration<E> source) |
static <T> Iterable<T> |
IterableAdapter(ExceptionSupplier<T> sup)
枚举适配器,用返回null作为结束标记。
|
static Iterable<ResultSet> |
IterableAdapter(ResultSet rs) |
static <T> Iterable<T> |
IterableAdapter(T[] sup) |
static <T,R> Iterable<R> |
IterableFilter(Iterable<T> list,
Class<R> aClass) |
static <E> Iterator<E> |
IteratorAdapter(Enumeration<E> source) |
static <T> Iterator<T> |
IteratorAdapter(ExceptionSupplier<T> sup) |
static Iterator<ResultSet> |
IteratorAdapter(ResultSet rs) |
static <T> Iterator<T> |
IteratorAdapter(T[] sup) |
static long |
Kilo(long val) |
static <T> T |
LastItem(List<T> list) |
static <T> T |
LastItem(T[] list) |
static String |
lastSubstring(String msg,
int charCntMax) |
static <E> Collection<E> |
Limit(Iterable<E> original,
long limit) |
static <E> Iterable<E> |
LimitIterable(long limit,
Iterable<E> original)
已过时。
|
static <E> Collection<E> |
LimitIterator(Collection<E> original,
long limit) |
static <E> Iterator<E> |
LimitIterator(long limit,
Iterator<E> original) |
static <K,V> Map<K,V> |
LimitMap(Map<K,V> original,
long limit) |
static Comparator<String> |
LineComparator()
比较线路名,可用于排序。
|
static <T> Comparator<T> |
LineComparator(java.util.function.Function<T,String> func)
利用线路名排序线路。
|
static long |
LongForceRange(long val,
long min,
long max) |
static void |
main(String[] args) |
static <K,V> void |
MapForEach(Map<K,V> map,
java.util.function.UnaryOperator<java.util.stream.Stream<Map.Entry<K,V>>> mapper,
java.util.function.BiConsumer<K,V> action)
和Map.forEach()相比,可以在forEach操作之前,做些处理:过滤、筛选等。
|
static <K,V> void |
MapForEachLimit(Map<K,V> map,
long limit,
java.util.function.BiConsumer<K,V> action) |
static <K extends Comparable,V> |
MapForEachOrdered(Map<K,V> map,
java.util.function.BiConsumer<? super K,? super V> action) |
static <K,V> void |
MapForEachOrdered(Map<K,V> map,
Comparator<? super K> comparator,
java.util.function.BiConsumer<? super K,? super V> action)
为Map添加排序枚举
|
static <K,V> void |
MapPutAllAndRemoveExclude(Map<K,V> map,
Map<K,V> tmp,
java.util.function.BiConsumer<K,V> removedEntryNotify) |
static double |
max(double... vals) |
static int |
max(int... vals) |
static long |
max(long... vals) |
static long |
Mega(long val) |
static <T> T |
MiddleValue(Collection<T> vals,
Comparator<T> c) |
static int |
MiddleValue(int... vals) |
static long |
MiddleValue(long... vals) |
static double |
min(double... vals) |
static int |
min(int... vals) |
static long |
min(long... vals) |
static <E> List<E> |
minusIndexableList()
ArrayList增强的ArrayList,支持负值index(从尾部开始数,-1代表最后一个元素)
|
static <E> List<E> |
minusIndexableList(List<E> list) |
static int |
msgLedWidth(String msg) |
static <T> T[] |
newArray(Class<T> aClass,
int size,
ExceptionIntFunction<T> func) |
static String[] |
newArray(int size,
java.util.function.IntFunction<String> func) |
static int[] |
newArray(int size,
java.util.function.IntUnaryOperator func) |
static long[] |
newArray(int size,
java.util.function.LongUnaryOperator func) |
static <T> List<T> |
newArrayList() |
static <K extends Comparable,V> |
newConcurrentSkipListMap()
可以规避放入不可比较的元素
|
static <K extends Comparable> |
newConcurrentSkipListSet()
可以规避放入不可比较的元素
|
static <T> LinkedList<T> |
newLinkedList() |
static <T> List<T> |
newList(int size,
ExceptionIntFunction<T> func) |
static <K extends Comparable,V> |
newTreeMap()
可以规避放入不可比较的元素
|
static <K extends Comparable> |
newTreeSet()
可以规避放入不可比较的元素
|
static Boolean |
parseBoolean(String boolStr,
Boolean defaultBool) |
static short |
parseUnsignedByte(String s) |
static short |
parseUnsignedByte(String s,
int radix) |
static int |
parseUnsignedInt(String s) |
static int |
parseUnsignedInt(String s,
int radix) |
static long |
parseUnsignedLong(String s) |
static long |
parseUnsignedLong(String s,
int radix) |
static short |
parseUnsignedShort(String s) |
static short |
parseUnsignedShort(String s,
int radix) |
static String |
PrefixOf(String str,
int charCount) |
static String |
PrintStackTraceToString(Throwable e) |
static String |
Repeat(int times,
CharSequence msg) |
static void |
Repeat(int times,
ExceptionIntConsumer task) |
static void |
Repeat(int times,
ITask task) |
static boolean |
require(boolean val) |
static boolean |
require(boolean val,
String msg) |
static void |
requireEquals(int expected,
int actual) |
static void |
requireEquals(long expected,
long actual) |
static <T> void |
requireEquals(T expected,
T actual) |
static void |
requireLessThen(int val,
int limit) |
static void |
requireLessThen(long val,
long limit) |
static void |
requireLessThenOrEqual(int val,
int limit) |
static void |
requireLessThenOrEqual(long val,
long limit) |
static <T> T |
requireNonNull(T obj) |
static <T> T |
requireNonNull(T obj,
String message) |
static <R> R |
RetryTimes(int times,
ExceptionIntFunction<R> task)
如果遇到异常,则重新尝试不超过限定的次数。
|
static byte[] |
Reverse(byte[] src) |
static <E> List<E> |
Reverse(List srcList) |
static <T> T[] |
Reverse(T[] src) |
static void |
Rollback(Connection conn) |
static double |
Round(double val,
int digits) |
static Runnable |
RunnableWithCatchAny(ITask task) |
static Runnable |
RunnableWithThrowAny(ITask task) |
static <T extends Comparable> |
Sort(Iterable<T> collect) |
static <T> Collection<T> |
Sort(Iterable<T> collect,
Comparator<? super T> c) |
static <T> Collection<T> |
Sort(Iterable<T> arg,
java.util.function.Function<? super T,? extends Comparable> keyExtractor) |
static <T,K> SortedMap<K,T> |
Sort(Map<K,T> arg,
Comparator<? super K> c) |
static <T,K> SortedMap<K,T> |
Sort(Map<K,T> arg,
java.util.function.Function<? super K,? extends Comparable> keyExtractor) |
static String[] |
Split(String str,
String delimiter)
String切分函数,解决String.split需要考虑正则的问题。
|
static String[] |
Split(String str,
String delimiter,
int itemCountMax)
System.out.println(Arrays.toString(Split("a=B=SASD", "=", 2)));//a,
B=SASD
|
static String[] |
Split(String str,
String delimiter,
int itemCountMax,
java.util.function.UnaryOperator<String> op) |
static String[] |
Split(String str,
String delimiter,
java.util.function.UnaryOperator<String> op) |
static Map<String,String> |
SplitToMap(String str) |
static Map<String,String> |
SplitToMap(String str,
char delimiter,
char delimiter2) |
static Thread |
StartDaemonThread(String threadName,
ITask task) |
static String |
SubstringAfter(String msg,
String delimiter)
返回字符串prefix后面的字符串。
|
static String |
SubstringBefore(String msg,
String delimiter) |
static String |
SuffixOf(String str,
int charCount) |
static long |
Tera(long val) |
static TimerTask |
TimerTask(ITask task) |
static long |
ToEpochMilli(java.time.LocalDateTime ldt) |
static long |
ToEpochMilli(java.time.OffsetDateTime odt) |
static java.time.LocalDateTime |
ToLocalDateTime(long millis) |
static java.time.OffsetDateTime |
ToOffsetDateTime(long millis) |
static Exception |
toOriginalException(RuntimeException e) |
static RuntimeException |
toRuntimeException(Exception e) |
static String |
ToString(Object... items) |
static Timestamp |
ToTimestamp(java.time.LocalDateTime ldt) |
static String |
toUnsignedString(long val) |
static String |
toUnsignedString(long val,
int radix) |
static int |
UnsignedIntForceRange(int val,
int min,
int max) |
static IProperties |
UrlQueryParams(String urlQuery) |
static Boolean |
WithDefault(Boolean val) |
static Double |
WithDefault(Double val) |
static Integer |
WithDefault(Integer val) |
static Long |
WithDefault(Long val) |
static String |
WithDefault(String val) |
static <T,R> R |
WithDefault(T val,
R defaultVal,
java.util.function.Function<T,R> mapper) |
static <T> String |
WithDefault(T val,
String defaultVal) |
static <T> T |
WithDefault(T val,
java.util.function.Supplier<T> defaultVal) |
static <T> T |
WithDefault(T val,
T defaultVal) |
static <T> T |
WithOp(T val,
java.util.function.Consumer<T> op) |
static void |
WithTimeout(Runnable task,
java.time.Duration timeout) |
static void |
WithTimeout2Beta(ITask task,
java.time.Duration timeout)
添加超时终止的功能
|
static void |
WithTimeout2Beta(ITask task,
java.time.Duration timeout,
java.time.Duration expiredTime)
增加重试次数
|
static String |
YYYYMMDD_HHMM(java.time.LocalDateTime time) |
static String |
YYYYMMDD_HHMM(long time) |
static String |
YYYYMMDD_HHMMSS(java.time.LocalDateTime time) |
static String |
YYYYMMDD_HHMMSS(long time) |
static String |
YYYYMMDD_HHMMSSXXX(java.time.LocalDateTime time) |
static String |
YYYYMMDD_HHMMSSXXX(long time) |
static String |
YYYYMMDD(java.time.LocalDateTime time) |
static String |
YYYYMMDD(long time) |
public static java.time.LocalDateTime LocalDateTime2000_01_01
public static Timestamp TIMESTAMP_NULL
public static byte[] Reverse(byte[] src)
public static <T> T[] Reverse(T[] src)
public static byte Byte(long val)
val - valuepublic static int Int(long val)
val - long valuepublic static int Int(byte val)
public static int Int(double val)
public static double Round(double val,
int digits)
public static int min(int... vals)
public static int max(int... vals)
public static long min(long... vals)
public static long max(long... vals)
public static double min(double... vals)
public static double max(double... vals)
public static double Avg(double... vals)
public static <T> T MiddleValue(Collection<T> vals, Comparator<T> c)
public static long MiddleValue(long... vals)
public static int MiddleValue(int... vals)
public static void WithTimeout(Runnable task, java.time.Duration timeout)
public static void WithTimeout2Beta(ITask task, java.time.Duration timeout)
task - 任务timeout - 超时用时public static void WithTimeout2Beta(ITask task, java.time.Duration timeout, java.time.Duration expiredTime)
task - 任务timeout - 超时用时expiredTime - 过期public static <T> T WithDefault(T val,
T defaultVal)
public static <T> T WithDefault(T val,
java.util.function.Supplier<T> defaultVal)
public static <T,R> R WithDefault(T val,
R defaultVal,
java.util.function.Function<T,R> mapper)
public static <T> T WithOp(T val,
java.util.function.Consumer<T> op)
@Deprecated public static <T,R> R IfNotNull(T param, java.util.function.Function<T,R> mapper, R defaultValue)
@Deprecated public static <T> void IfNotNull(T param, java.util.function.Consumer<T> mapper)
public static void ExecuteWithCatchAny(ITask task)
public static void ExecuteWithThrowAny(ITask task)
public static <T> T CallWithThrowAny(Callable<T> task)
public static <T> T CallWithCatchAny(Callable<T> task, T defaultVal)
public static RuntimeException toRuntimeException(Exception e)
public static Exception toOriginalException(RuntimeException e)
public static void Repeat(int times,
ITask task)
public static void Repeat(int times,
ExceptionIntConsumer task)
public static <R> R RetryTimes(int times,
ExceptionIntFunction<R> task)
R - 返回类型times - 次数task - 任务public static <T> T[] newArray(Class<T> aClass, int size, ExceptionIntFunction<T> func)
public static int[] newArray(int size,
java.util.function.IntUnaryOperator func)
public static long[] newArray(int size,
java.util.function.LongUnaryOperator func)
public static String[] newArray(int size, java.util.function.IntFunction<String> func)
public static <T> List<T> newList(int size, ExceptionIntFunction<T> func)
public static void Close(AutoCloseable closeable)
public static AutoCloseable AutoCloseable(ITask closeTask)
closeTask - 注册结尾要关闭的事项public static void Rollback(Connection conn)
public static void Commit(Connection conn) throws SQLException
SQLExceptionpublic static <T> Comparator<T> HashComparator()
public static final <T> T[] emptyArray()
public static final int[] emptyIntArray()
public static final long[] emptyLongArray()
public static final byte[] emptyByteArray()
public static <K extends Comparable,V> TreeMap<K,V> newTreeMap()
K - keyV - valuepublic static <K extends Comparable,V> ConcurrentSkipListMap<K,V> newConcurrentSkipListMap()
K - keyV - valuepublic static <K extends Comparable> TreeSet<K> newTreeSet()
K - Keypublic static <T> List<T> newArrayList()
public static <T> LinkedList<T> newLinkedList()
public static <T> T LastItem(List<T> list)
public static <T> T LastItem(T[] list)
public static <K extends Comparable> ConcurrentSkipListSet<K> newConcurrentSkipListSet()
K - Keypublic static <K,V> void MapForEach(Map<K,V> map, java.util.function.UnaryOperator<java.util.stream.Stream<Map.Entry<K,V>>> mapper, java.util.function.BiConsumer<K,V> action)
K - keyV - valuemap - mapmapper - mapperaction - actionpublic static <K,V> void MapForEachLimit(Map<K,V> map, long limit, java.util.function.BiConsumer<K,V> action)
public static <K extends Comparable,V> void MapForEachOrdered(Map<K,V> map, java.util.function.BiConsumer<? super K,? super V> action)
public static <K,V> void MapForEachOrdered(Map<K,V> map, Comparator<? super K> comparator, java.util.function.BiConsumer<? super K,? super V> action)
K - keyV - valuemap - mapcomparator - comparatoraction - actionpublic static <T> Collection<T> Sort(Iterable<T> collect, Comparator<? super T> c)
public static <T extends Comparable> Collection<T> Sort(Iterable<T> collect)
public static <T> Collection<T> Sort(Iterable<T> arg, java.util.function.Function<? super T,? extends Comparable> keyExtractor)
public static <T,K> SortedMap<K,T> Sort(Map<K,T> arg, Comparator<? super K> c)
public static <T,K> SortedMap<K,T> Sort(Map<K,T> arg, java.util.function.Function<? super K,? extends Comparable> keyExtractor)
public static <T> Iterable<T> IterableAdapter(ExceptionSupplier<T> sup)
T - Typesup - supplierpublic static <T> Iterator<T> IteratorAdapter(ExceptionSupplier<T> sup)
public static <T> Iterable<T> IterableAdapter(T[] sup)
public static <T> Iterator<T> IteratorAdapter(T[] sup)
public static <E> Iterable<E> IterableAdapter(Enumeration<E> source)
public static <E> Iterator<E> IteratorAdapter(Enumeration<E> source)
public static <E> Collection<E> LimitIterator(Collection<E> original, long limit)
@Deprecated public static <E> Iterable<E> LimitIterable(long limit, Iterable<E> original)
public static <E> Collection<E> Limit(Iterable<E> original, long limit)
public static <E> Iterable<E> ForEachFrom(ExceptionSupplier<E> sup)
E - Esup - supplierpublic static int DecodeInt(String nm) throws NumberFormatException
nm - number stringNumberFormatException - 格式异常public static long DecodeLong(String nm) throws NumberFormatException
nm - number stringNumberFormatException - 格式异常public static List<Integer> DecodeIntegers(String str)
str - '123,456,...'public static boolean IsEmptyString(String str)
public static boolean IsNotEmptyString(String str)
public static String[] Split(String str, String delimiter)
str - stringdelimiter - 分隔符public static String[] Split(String str, String delimiter, java.util.function.UnaryOperator<String> op)
public static String[] Split(String str, String delimiter, int itemCountMax)
str - stringdelimiter - 分隔符itemCountMax - 项数public static String[] Split(String str, String delimiter, int itemCountMax, java.util.function.UnaryOperator<String> op)
public static Map<String,String> SplitToMap(String str, char delimiter, char delimiter2)
str - stringdelimiter - '=' or ':'delimiter2 - '&' or ',' or etcpublic static IProperties UrlQueryParams(String urlQuery)
public void ImportPropertiesToSystemIfNoExisted(Properties prop)
public static long Kilo(long val)
public static long Mega(long val)
public static long Giga(long val)
public static long Tera(long val)
public static String GpsDoubleToString(double gps)
public static long ToEpochMilli(java.time.LocalDateTime ldt)
public static long ToEpochMilli(java.time.OffsetDateTime odt)
public static java.time.OffsetDateTime ToOffsetDateTime(long millis)
public static java.time.LocalDateTime ToLocalDateTime(long millis)
public static Timestamp ToTimestamp(java.time.LocalDateTime ldt)
public static <T> List<T> AllNotIn(Collection<T> input, Collection<T> base)
public static <K,V> void MapPutAllAndRemoveExclude(Map<K,V> map, Map<K,V> tmp, java.util.function.BiConsumer<K,V> removedEntryNotify)
public static String HHMM(java.time.LocalDateTime time)
public static String HHMM(long time)
public static String HHMMSS(java.time.LocalDateTime time)
public static String HHMMSS(long time)
public static String YYYYMMDD(java.time.LocalDateTime time)
public static String YYYYMMDD(long time)
public static String YYYYMMDD_HHMM(java.time.LocalDateTime time)
public static String YYYYMMDD_HHMM(long time)
public static String YYYYMMDD_HHMMSS(java.time.LocalDateTime time)
public static String YYYYMMDD_HHMMSS(long time)
public static String YYYYMMDD_HHMMSSXXX(java.time.LocalDateTime time)
public static String YYYYMMDD_HHMMSSXXX(long time)
public static Charset GBK()
public static Charset GB18030()
public static int msgLedWidth(String msg)
public static String Filled(int times, char ch)
public static String Filled(int times, CharSequence msg)
public static <T> Comparator<T> LineComparator(java.util.function.Function<T,String> func)
List<Line> list = 。。。
System.out.println(""+list);
Collections.sort(list, Util.LineComparator(Line::lineName));//假定含有方法:String Line.lineName()
System.out.println(""+list);
T - Object Typefunc - functionpublic static Comparator<String> LineComparator()
List<String> list = Arrays.asList("11路", "9路", "快速1路", "123路环线");
System.out.println(""+list);
Collections.sort(list, Util.LineComparator());
System.out.println(""+list);
public static java.time.Duration Duration(Runnable task)
public static long parseUnsignedLong(String s) throws NumberFormatException
public static long parseUnsignedLong(String s, int radix) throws NumberFormatException
public static int parseUnsignedInt(String s) throws NumberFormatException
public static int parseUnsignedInt(String s, int radix) throws NumberFormatException
public static short parseUnsignedShort(String s) throws NumberFormatException
public static short parseUnsignedShort(String s, int radix) throws NumberFormatException
public static short parseUnsignedByte(String s) throws NumberFormatException
public static short parseUnsignedByte(String s, int radix) throws NumberFormatException
public static String toUnsignedString(long val)
public static String toUnsignedString(long val, int radix)
public static <A> int CompareAny(A a1,
A a2)
public static <A> Comparator<A> AnyComparator()
public static InputStream FilterInputStream(InputStream in, java.util.function.IntUnaryOperator func)
public static OutputStream FilterOutputStream(OutputStream out, java.util.function.IntUnaryOperator func)
public static int IntForceRange(int val,
int min,
int max)
public static int CheckIntRange(int val,
int min,
int max)
public static int UnsignedIntForceRange(int val,
int min,
int max)
public static long LongForceRange(long val,
long min,
long max)
public static long CheckLongRange(long val,
long min,
long max)
public static java.time.LocalDateTime ForceToLocalDateTime(int year,
int month,
int dayOfMonth,
int hour,
int minute,
int second)
public static int ForceToDayOfMonth(int year,
int month,
int dayOfMonth)
public static boolean IsLinux()
public static String SubstringAfter(String msg, String delimiter)
msg - msgdelimiter - 分隔符public static boolean require(boolean val)
public static boolean require(boolean val,
String msg)
public static <T> void requireEquals(T expected,
T actual)
public static void requireEquals(int expected,
int actual)
public static void requireEquals(long expected,
long actual)
public static void requireLessThenOrEqual(int val,
int limit)
public static void requireLessThenOrEqual(long val,
long limit)
public static void requireLessThen(int val,
int limit)
public static void requireLessThen(long val,
long limit)
public static <T> T requireNonNull(T obj)
public static <T> T requireNonNull(T obj,
String message)
public static <E> List<E> minusIndexableList()
E - 元素类型public static <E> List<E> minusIndexableList(List<E> list)
E - 元素类型list - 原始列表public static String Repeat(int times, CharSequence msg)
public static void main(String[] args)
Copyright © 2022. All rights reserved.