docs: public ScatteredConsistentHash union(ScatteredConsistentHash sch2) {
        checkSameHashAndSegments(sch2);
  
        List<Address> unionMembers = new ArrayList<>(this.members);
        mergeLists(unionMembers, sch2.getMembers());
  
        Address[] unionSegmentOwners = new Address[segmentOwners.length];
        for (int i = 0; i < unionSegmentOwners.length; i++) {
           unionSegmentOwners[i] = Optional.ofNullable(sch2.locatePrimaryOwnerForSegment(i)).orElse(locatePrimaryOwnerForSegment(i));
        }
  
        Map<Address, Float> unionCapacityFactors = unionCapacityFactors(sch2);
        return new ScatteredConsistentHash(hashFunction, unionSegmentOwners.length, unionMembers, unionCapacityFactors, unionSegmentOwners, false);
     }