Is it possible in java make something like Comparator but for implementing custom equals() and hashCode()

前端 未结 8 1136
庸人自扰
庸人自扰 2020-11-27 03:50

I have an array of objects and I want to concatenate it with another array of objects, except that objects that have same id\'s. That objects are used in many places in the

8条回答
  •  春和景丽
    2020-11-27 04:11

    Use Guava Equivalence:

    Equivalence equivalence = new Equivalence() {
        @Override
        protected boolean doEquivalent(T a, T b) {
            return CustomComparator.equals(a, b);
        }
    
        @Override
        protected int doHash(T item) {
            return CustomHashCodeGenerator.hashCode(item);
        }
    };
    List items = getItems();
    Set> setWithWrappedObjects = items.stream()
        .map(item -> equivalence.wrap(item))
        .collect(Collectors.toSet());
    

提交回复
热议问题