mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
fix code
This commit is contained in:
parent
8e2c06c671
commit
75be3ebae4
@ -1,4 +1,4 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.cache;
|
||||
|
||||
import cn.hutool.core.collection.TransIter;
|
||||
import cn.hutool.core.lang.func.Func0;
|
@ -1,13 +1,13 @@
|
||||
package cn.hutool.core.collection;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Filter;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* 包装 {@link Iterator}并根据{@link Filter}定义,过滤元素输出<br>
|
||||
* 包装 {@link Iterator}并根据{@link Predicate}定义,过滤元素输出<br>
|
||||
* 类实现来自Apache Commons Collection
|
||||
*
|
||||
* @author apache commons, looly
|
||||
@ -16,7 +16,7 @@ import java.util.NoSuchElementException;
|
||||
public class FilterIter<E> implements Iterator<E> {
|
||||
|
||||
private final Iterator<? extends E> iterator;
|
||||
private final Filter<? super E> filter;
|
||||
private final Predicate<? super E> filter;
|
||||
|
||||
/**
|
||||
* 下一个元素
|
||||
@ -33,7 +33,7 @@ public class FilterIter<E> implements Iterator<E> {
|
||||
* @param iterator 被包装的{@link Iterator}
|
||||
* @param filter 过滤函数,{@code null}表示不过滤
|
||||
*/
|
||||
public FilterIter(final Iterator<? extends E> iterator, final Filter<? super E> filter) {
|
||||
public FilterIter(final Iterator<? extends E> iterator, final Predicate<? super E> filter) {
|
||||
this.iterator = Assert.notNull(iterator);
|
||||
this.filter = filter;
|
||||
}
|
||||
@ -74,7 +74,7 @@ public class FilterIter<E> implements Iterator<E> {
|
||||
*
|
||||
* @return 过滤函数,可能为{@code null}
|
||||
*/
|
||||
public Filter<? super E> getFilter() {
|
||||
public Predicate<? super E> getFilter() {
|
||||
return filter;
|
||||
}
|
||||
|
||||
@ -84,7 +84,7 @@ public class FilterIter<E> implements Iterator<E> {
|
||||
private boolean setNextObject() {
|
||||
while (iterator.hasNext()) {
|
||||
final E object = iterator.next();
|
||||
if (null != filter && filter.accept(object)) {
|
||||
if (null != filter && filter.test(object)) {
|
||||
nextObject = object;
|
||||
nextObjectSet = true;
|
||||
return true;
|
||||
|
@ -27,6 +27,7 @@ import java.util.Map.Entry;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* {@link Iterable} 和 {@link Iterator} 相关工具类
|
||||
@ -753,7 +754,7 @@ public class IterUtil {
|
||||
* @return ArrayList
|
||||
* @since 5.7.22
|
||||
*/
|
||||
public static <E> List<E> filterToList(Iterator<E> iter, Filter<E> filter) {
|
||||
public static <E> List<E> filterToList(Iterator<E> iter, Predicate<E> filter) {
|
||||
return toList(filtered(iter, filter));
|
||||
}
|
||||
|
||||
@ -766,7 +767,7 @@ public class IterUtil {
|
||||
* @return {@link FilterIter}
|
||||
* @since 5.8.0
|
||||
*/
|
||||
public static <E> FilterIter<E> filtered(final Iterator<? extends E> iterator, final Filter<? super E> filter) {
|
||||
public static <E> FilterIter<E> filtered(final Iterator<? extends E> iterator, final Predicate<? super E> filter) {
|
||||
return new FilterIter<>(iterator, filter);
|
||||
}
|
||||
|
||||
|
@ -206,7 +206,7 @@ public class FileCopier extends SrcToDestCopier<File, FileCopier>{
|
||||
* @throws IORuntimeException IO异常
|
||||
*/
|
||||
private void internalCopyDirContent(File src, File dest) throws IORuntimeException {
|
||||
if (null != copyFilter && false == copyFilter.accept(src)) {
|
||||
if (null != copyPredicate && false == copyPredicate.test(src)) {
|
||||
//被过滤的目录跳过
|
||||
return;
|
||||
}
|
||||
@ -249,7 +249,7 @@ public class FileCopier extends SrcToDestCopier<File, FileCopier>{
|
||||
* @throws IORuntimeException IO异常
|
||||
*/
|
||||
private void internalCopyFile(File src, File dest) throws IORuntimeException {
|
||||
if (null != copyFilter && false == copyFilter.accept(src)) {
|
||||
if (null != copyPredicate && false == copyPredicate.test(src)) {
|
||||
//被过滤的文件跳过
|
||||
return;
|
||||
}
|
||||
|
@ -4,7 +4,6 @@ import cn.hutool.core.collection.EnumerationIter;
|
||||
import cn.hutool.core.collection.IterUtil;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IORuntimeException;
|
||||
import cn.hutool.core.lang.Filter;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.core.util.ClassLoaderUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
@ -17,6 +16,7 @@ import java.net.URL;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* Resource资源工具类
|
||||
@ -155,7 +155,7 @@ public class ResourceUtil {
|
||||
* @param filter 过滤器,用于过滤不需要的资源,{@code null}表示不过滤,保留所有元素
|
||||
* @return 资源列表
|
||||
*/
|
||||
public static List<URL> getResources(String resource, Filter<URL> filter) {
|
||||
public static List<URL> getResources(String resource, Predicate<URL> filter) {
|
||||
return IterUtil.filterToList(getResourceIter(resource), filter);
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,7 @@ import java.nio.charset.Charset;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.jar.JarEntry;
|
||||
import java.util.jar.JarFile;
|
||||
|
||||
@ -48,7 +49,7 @@ public class ClassScanner implements Serializable {
|
||||
/**
|
||||
* 过滤器
|
||||
*/
|
||||
private final Filter<Class<?>> classFilter;
|
||||
private final Predicate<Class<?>> classPredicate;
|
||||
/**
|
||||
* 编码
|
||||
*/
|
||||
@ -151,7 +152,7 @@ public class ClassScanner implements Serializable {
|
||||
* @return 类集合
|
||||
* @since 5.7.5
|
||||
*/
|
||||
public static Set<Class<?>> scanAllPackage(String packageName, Filter<Class<?>> classFilter) {
|
||||
public static Set<Class<?>> scanAllPackage(String packageName, Predicate<Class<?>> classFilter) {
|
||||
return new ClassScanner(packageName, classFilter).scan(true);
|
||||
}
|
||||
|
||||
@ -164,7 +165,7 @@ public class ClassScanner implements Serializable {
|
||||
* @param classFilter class过滤器,过滤掉不需要的class
|
||||
* @return 类集合
|
||||
*/
|
||||
public static Set<Class<?>> scanPackage(String packageName, Filter<Class<?>> classFilter) {
|
||||
public static Set<Class<?>> scanPackage(String packageName, Predicate<Class<?>> classFilter) {
|
||||
return new ClassScanner(packageName, classFilter).scan();
|
||||
}
|
||||
|
||||
@ -188,26 +189,26 @@ public class ClassScanner implements Serializable {
|
||||
* 构造,默认UTF-8编码
|
||||
*
|
||||
* @param packageName 包名,所有包传入""或者null
|
||||
* @param classFilter 过滤器,无需传入null
|
||||
* @param classPredicate 过滤器,无需传入null
|
||||
*/
|
||||
public ClassScanner(String packageName, Filter<Class<?>> classFilter) {
|
||||
this(packageName, classFilter, CharsetUtil.CHARSET_UTF_8);
|
||||
public ClassScanner(String packageName, Predicate<Class<?>> classPredicate) {
|
||||
this(packageName, classPredicate, CharsetUtil.CHARSET_UTF_8);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param packageName 包名,所有包传入""或者null
|
||||
* @param classFilter 过滤器,无需传入null
|
||||
* @param classPredicate 过滤器,无需传入null
|
||||
* @param charset 编码
|
||||
*/
|
||||
public ClassScanner(String packageName, Filter<Class<?>> classFilter, Charset charset) {
|
||||
public ClassScanner(String packageName, Predicate<Class<?>> classPredicate, Charset charset) {
|
||||
packageName = StrUtil.nullToEmpty(packageName);
|
||||
this.packageName = packageName;
|
||||
this.packageNameWithDot = StrUtil.addSuffixIfNot(packageName, StrUtil.DOT);
|
||||
this.packageDirName = packageName.replace(CharUtil.DOT, File.separatorChar);
|
||||
this.packagePath = packageName.replace(CharUtil.DOT, CharUtil.SLASH);
|
||||
this.classFilter = classFilter;
|
||||
this.classPredicate = classPredicate;
|
||||
this.charset = charset;
|
||||
}
|
||||
|
||||
@ -392,8 +393,8 @@ public class ClassScanner implements Serializable {
|
||||
*/
|
||||
private void addIfAccept(Class<?> clazz) {
|
||||
if (null != clazz) {
|
||||
Filter<Class<?>> classFilter = this.classFilter;
|
||||
if (classFilter == null || classFilter.accept(clazz)) {
|
||||
Predicate<Class<?>> classFilter = this.classPredicate;
|
||||
if (classFilter == null || classFilter.test(clazz)) {
|
||||
this.classes.add(clazz);
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
package cn.hutool.core.lang.copier;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import cn.hutool.core.lang.Filter;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* 复制器抽象类<br>
|
||||
@ -22,7 +21,7 @@ public abstract class SrcToDestCopier<T, C extends SrcToDestCopier<T, C>> implem
|
||||
/** 目标 */
|
||||
protected T dest;
|
||||
/** 拷贝过滤器,可以过滤掉不需要拷贝的源 */
|
||||
protected Filter<T> copyFilter;
|
||||
protected Predicate<T> copyPredicate;
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------- Getters and Setters start
|
||||
/**
|
||||
@ -68,18 +67,18 @@ public abstract class SrcToDestCopier<T, C extends SrcToDestCopier<T, C>> implem
|
||||
* 获得过滤器
|
||||
* @return 过滤器
|
||||
*/
|
||||
public Filter<T> getCopyFilter() {
|
||||
return copyFilter;
|
||||
public Predicate<T> getCopyPredicate() {
|
||||
return copyPredicate;
|
||||
}
|
||||
/**
|
||||
* 设置过滤器
|
||||
*
|
||||
* @param copyFilter 过滤器
|
||||
* @param copyPredicate 过滤器
|
||||
* @return this
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public C setCopyFilter(Filter<T> copyFilter) {
|
||||
this.copyFilter = copyFilter;
|
||||
public C setCopyPredicate(Predicate<T> copyPredicate) {
|
||||
this.copyPredicate = copyPredicate;
|
||||
return (C)this;
|
||||
}
|
||||
//-------------------------------------------------------------------------------------------------------- Getters and Setters end
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.lang.generator;
|
||||
|
||||
import cn.hutool.core.lang.ObjectId;
|
||||
import cn.hutool.core.lang.id.ObjectId;
|
||||
|
||||
/**
|
||||
* ObjectId生成器
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.lang.generator;
|
||||
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.id.Snowflake;
|
||||
|
||||
/**
|
||||
* Snowflake生成器<br>
|
||||
|
@ -1,7 +1,4 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.lang.hash.Hash32;
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
package cn.hutool.core.lang.hash;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
@ -10,24 +7,31 @@ import java.util.TreeMap;
|
||||
|
||||
/**
|
||||
* 一致性Hash算法
|
||||
* 算法详解:http://blog.csdn.net/sparkliang/article/details/5279393
|
||||
* 算法实现:https://weblogs.java.net/blog/2007/11/27/consistent-hashing
|
||||
* @author xiaoleilu
|
||||
* 算法详解:<a href="http://blog.csdn.net/sparkliang/article/details/5279393">http://blog.csdn.net/sparkliang/article/details/5279393</a>
|
||||
* 算法实现:<a href="https://weblogs.java.net/blog/2007/11/27/consistent-hashing">https://weblogs.java.net/blog/2007/11/27/consistent-hashing</a>
|
||||
*
|
||||
* @param <T> 节点类型
|
||||
* @author xiaoleilu
|
||||
*/
|
||||
public class ConsistentHash<T> implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** Hash计算对象,用于自定义hash算法 */
|
||||
/**
|
||||
* Hash计算对象,用于自定义hash算法
|
||||
*/
|
||||
Hash32<Object> hashFunc;
|
||||
/** 复制的节点个数 */
|
||||
/**
|
||||
* 复制的节点个数
|
||||
*/
|
||||
private final int numberOfReplicas;
|
||||
/** 一致性Hash环 */
|
||||
/**
|
||||
* 一致性Hash环
|
||||
*/
|
||||
private final SortedMap<Integer, T> circle = new TreeMap<>();
|
||||
|
||||
/**
|
||||
* 构造,使用Java默认的Hash算法
|
||||
*
|
||||
* @param numberOfReplicas 复制的节点个数,增加每个节点的复制节点有利于负载均衡
|
||||
* @param nodes 节点对象
|
||||
*/
|
||||
@ -45,6 +49,7 @@ public class ConsistentHash<T> implements Serializable{
|
||||
|
||||
/**
|
||||
* 构造
|
||||
*
|
||||
* @param hashFunc hash算法对象
|
||||
* @param numberOfReplicas 复制的节点个数,增加每个节点的复制节点有利于负载均衡
|
||||
* @param nodes 节点对象
|
||||
@ -63,6 +68,7 @@ public class ConsistentHash<T> implements Serializable{
|
||||
* 每增加一个节点,就会在闭环上增加给定复制节点数<br>
|
||||
* 例如复制节点数是2,则每调用此方法一次,增加两个虚拟节点,这两个节点指向同一Node
|
||||
* 由于hash算法会调用node的toString方法,故按照toString去重
|
||||
*
|
||||
* @param node 节点对象
|
||||
*/
|
||||
public void add(T node) {
|
||||
@ -73,6 +79,7 @@ public class ConsistentHash<T> implements Serializable{
|
||||
|
||||
/**
|
||||
* 移除节点的同时移除相应的虚拟节点
|
||||
*
|
||||
* @param node 节点对象
|
||||
*/
|
||||
public void remove(T node) {
|
||||
@ -83,6 +90,7 @@ public class ConsistentHash<T> implements Serializable{
|
||||
|
||||
/**
|
||||
* 获得一个最近的顺时针节点
|
||||
*
|
||||
* @param key 为给定键取Hash,取得顺时针方向上最近的一个虚拟节点对应的实际节点
|
||||
* @return 节点对象
|
||||
*/
|
@ -1,9 +1,4 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import cn.hutool.core.lang.hash.CityHash;
|
||||
import cn.hutool.core.lang.hash.MetroHash;
|
||||
import cn.hutool.core.lang.hash.MurmurHash;
|
||||
import cn.hutool.core.lang.hash.Number128;
|
||||
package cn.hutool.core.lang.hash;
|
||||
|
||||
/**
|
||||
* Hash算法大全<br>
|
@ -2,11 +2,7 @@ package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.ObjectId;
|
||||
import cn.hutool.core.lang.Singleton;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.id.UUID;
|
||||
import cn.hutool.core.lang.id.NanoId;
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.hutool.core.util.RuntimeUtil;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ClassLoaderUtil;
|
@ -1,6 +1,7 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.lang.id;
|
||||
|
||||
import cn.hutool.core.date.SystemClock;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
@ -1,9 +1,11 @@
|
||||
package cn.hutool.core.lang;
|
||||
package cn.hutool.core.map;
|
||||
|
||||
import cn.hutool.core.bean.BeanPath;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.lang.func.Func0;
|
||||
import cn.hutool.core.lang.func.LambdaUtil;
|
||||
import cn.hutool.core.getter.BasicTypeGetter;
|
@ -2,7 +2,7 @@ package cn.hutool.core.text.bloomfilter;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
/**
|
||||
* 默认Bloom过滤器,使用Java自带的Hash算法
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class ELFFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class FNVFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class HfFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class HfIpFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class JSFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class PJWFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class RSFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class SDBMFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text.bloomfilter.filter;
|
||||
|
||||
import cn.hutool.core.util.HashUtil;
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
|
||||
public class TianlFilter extends FuncFilter {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -1,7 +1,6 @@
|
||||
package cn.hutool.core.text.dfa;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.Filter;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -10,6 +9,7 @@ import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* DFA(Deterministic Finite Automaton 确定有穷自动机)
|
||||
@ -36,7 +36,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
/**
|
||||
* 字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符,当accept为false时,此字符不参与匹配
|
||||
*/
|
||||
private Filter<Character> charFilter = StopChar::isNotStopChar;
|
||||
private Predicate<Character> charFilter = StopChar::isNotStopChar;
|
||||
|
||||
//--------------------------------------------------------------------------------------- Constructor start
|
||||
|
||||
@ -55,7 +55,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
* @return this
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public WordTree setCharFilter(Filter<Character> charFilter) {
|
||||
public WordTree setCharFilter(Predicate<Character> charFilter) {
|
||||
this.charFilter = charFilter;
|
||||
return this;
|
||||
}
|
||||
@ -98,7 +98,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
* @return this
|
||||
*/
|
||||
public WordTree addWord(String word) {
|
||||
final Filter<Character> charFilter = this.charFilter;
|
||||
final Predicate<Character> charFilter = this.charFilter;
|
||||
WordTree parent = null;
|
||||
WordTree current = this;
|
||||
WordTree child;
|
||||
@ -106,7 +106,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
final int length = word.length();
|
||||
for (int i = 0; i < length; i++) {
|
||||
currentChar = word.charAt(i);
|
||||
if (charFilter.accept(currentChar)) {//只处理合法字符
|
||||
if (charFilter.test(currentChar)) {//只处理合法字符
|
||||
child = current.get(currentChar);
|
||||
if (child == null) {
|
||||
//无子类,新建一个子节点后存放下一个字符
|
||||
@ -245,7 +245,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
List<FoundWord> foundWords = new ArrayList<>();
|
||||
WordTree current = this;
|
||||
final int length = text.length();
|
||||
final Filter<Character> charFilter = this.charFilter;
|
||||
final Predicate<Character> charFilter = this.charFilter;
|
||||
//存放查找到的字符缓存。完整出现一个词时加到findedWords中,否则清空
|
||||
final StringBuilder wordBuffer = StrUtil.builder();
|
||||
final StringBuilder keyBuffer = StrUtil.builder();
|
||||
@ -256,7 +256,7 @@ public class WordTree extends HashMap<Character, WordTree> {
|
||||
for (int j = i; j < length; j++) {
|
||||
currentChar = text.charAt(j);
|
||||
// Console.log("i: {}, j: {}, currentChar: {}", i, j, currentChar);
|
||||
if (false == charFilter.accept(currentChar)) {
|
||||
if (false == charFilter.test(currentChar)) {
|
||||
if (wordBuffer.length() > 0) {
|
||||
//做为关键词中间的停顿词被当作关键词的一部分被返回
|
||||
wordBuffer.append(currentChar);
|
||||
|
@ -1,8 +1,9 @@
|
||||
package cn.hutool.core.text.escape;
|
||||
|
||||
import cn.hutool.core.lang.Filter;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* 转义和反转义工具类Escape / Unescape<br>
|
||||
* escape采用ISO Latin字符集对指定的字符串进行编码。<br>
|
||||
@ -16,7 +17,7 @@ public class EscapeUtil {
|
||||
* 不转义的符号编码
|
||||
*/
|
||||
private static final String NOT_ESCAPE_CHARS = "*@-_+./";
|
||||
private static final Filter<Character> JS_ESCAPE_FILTER = c -> false == (
|
||||
private static final Predicate<Character> JS_ESCAPE_FILTER = c -> false == (
|
||||
Character.isDigit(c)
|
||||
|| Character.isLowerCase(c)
|
||||
|| Character.isUpperCase(c)
|
||||
@ -109,7 +110,7 @@ public class EscapeUtil {
|
||||
* @param filter 编码过滤器,对于过滤器中accept为false的字符不做编码
|
||||
* @return 编码后的字符串
|
||||
*/
|
||||
public static String escape(CharSequence content, Filter<Character> filter) {
|
||||
public static String escape(CharSequence content, Predicate<Character> filter) {
|
||||
if (StrUtil.isEmpty(content)) {
|
||||
return StrUtil.str(content);
|
||||
}
|
||||
@ -118,7 +119,7 @@ public class EscapeUtil {
|
||||
char c;
|
||||
for (int i = 0; i < content.length(); i++) {
|
||||
c = content.charAt(i);
|
||||
if (false == filter.accept(c)) {
|
||||
if (false == filter.test(c)) {
|
||||
tmp.append(c);
|
||||
} else if (c < 256) {
|
||||
tmp.append("%");
|
||||
|
@ -26,6 +26,7 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* 类工具类 <br>
|
||||
@ -233,7 +234,7 @@ public class ClassUtil {
|
||||
* @param classFilter class过滤器,过滤掉不需要的class
|
||||
* @return 类集合
|
||||
*/
|
||||
public static Set<Class<?>> scanPackage(String packageName, Filter<Class<?>> classFilter) {
|
||||
public static Set<Class<?>> scanPackage(String packageName, Predicate<Class<?>> classFilter) {
|
||||
return ClassScanner.scanPackage(packageName, classFilter);
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ package cn.hutool.core.collection;
|
||||
|
||||
import cn.hutool.core.comparator.ComparableComparator;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
|
@ -2,6 +2,7 @@ package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.builder.GenericBuilder;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -2,6 +2,7 @@ package cn.hutool.core.lang;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
import cn.hutool.core.lang.id.ObjectId;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.cache.SimpleCache;
|
||||
import cn.hutool.core.thread.ConcurrencyTester;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import org.junit.Assert;
|
||||
|
@ -2,6 +2,7 @@ package cn.hutool.core.lang;
|
||||
|
||||
import cn.hutool.core.collection.ConcurrentHashSet;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.id.Snowflake;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.text;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.CharUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
@ -1,5 +1,6 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import cn.hutool.core.lang.hash.HashUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -5,7 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.TimeInterval;
|
||||
import cn.hutool.core.exceptions.UtilException;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.lang.Snowflake;
|
||||
import cn.hutool.core.lang.id.Snowflake;
|
||||
import cn.hutool.core.lang.id.IdUtil;
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import org.junit.Assert;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.core.util;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.db;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.lang.func.Func0;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.extra.ssh;
|
||||
|
||||
import cn.hutool.core.lang.SimpleCache;
|
||||
import cn.hutool.core.cache.SimpleCache;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.jcraft.jsch.Session;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.extra.template.engine.wit;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.extra.template.Template;
|
||||
import cn.hutool.extra.template.TemplateConfig;
|
||||
import cn.hutool.extra.template.TemplateEngine;
|
||||
|
@ -2,7 +2,7 @@ package cn.hutool.extra.expression;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.extra.expression.engine.aviator.AviatorEngine;
|
||||
import lombok.Data;
|
||||
import org.junit.Assert;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.extra.expression;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.extra.expression.engine.jexl.JexlEngine;
|
||||
import cn.hutool.extra.expression.engine.jfireel.JfireELEngine;
|
||||
import cn.hutool.extra.expression.engine.mvel.MvelEngine;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.extra.template;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.template.engine.jetbrick.JetbrickEngine;
|
||||
import org.junit.Assert;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.extra.template;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.template.TemplateConfig.ResourceMode;
|
||||
import cn.hutool.extra.template.engine.beetl.BeetlEngine;
|
||||
|
@ -14,7 +14,7 @@ import org.thymeleaf.context.Context;
|
||||
import org.thymeleaf.templateresolver.StringTemplateResolver;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.extra.template.engine.thymeleaf.ThymeleafEngine;
|
||||
|
||||
/**
|
||||
|
@ -1,6 +1,6 @@
|
||||
package cn.hutool.extra.template;
|
||||
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.extra.template.engine.velocity.VelocityEngine;
|
||||
import org.junit.Assert;
|
||||
|
@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.convert.ConvertException;
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.lang.TypeReference;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import cn.hutool.json.test.bean.Exam;
|
||||
|
@ -3,7 +3,7 @@ package cn.hutool.log.dialect.console;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Console;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.log.AbstractLog;
|
||||
import cn.hutool.log.level.Level;
|
||||
|
@ -3,7 +3,7 @@ package cn.hutool.setting.yaml;
|
||||
import cn.hutool.core.io.IoUtil;
|
||||
import cn.hutool.core.io.resource.ResourceUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import org.yaml.snakeyaml.DumperOptions;
|
||||
import org.yaml.snakeyaml.Yaml;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package cn.hutool.setting.yaml;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.lang.Dict;
|
||||
import cn.hutool.core.map.Dict;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Ignore;
|
||||
|
Loading…
x
Reference in New Issue
Block a user