自学内容网 自学内容网

集合去重时需要灵活的指定某一个字段的一个小工具

public class SoleList<T> extends ArrayList<T> {

    private Set<String> existKeys;

    private Function<T, String> keyFun;

    public SoleList(Function<T, String> keyFun) {
        super();
        this.existKeys = new HashSet<>();
        this.keyFun = keyFun;
    }

    @Override
    public boolean add(T t) {
        if (null == t) {
            return true;
        }
        String key = keyFun.apply(t);
        if (null == key) {
            return true;
        }
        if (!existKeys.contains(key)) {
            existKeys.add(key);
            return super.add(t);
        }
        return true;
    }

    @Override
    public boolean addAll(Collection<? extends T> c) {
        if (null != c) {
            for (T t : c) {
                add(t);
            }
        }
        return true;
    }
}

使用示例:
在这里插入图片描述


原文地址:https://blog.csdn.net/qq_37148232/article/details/142356377

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!