Sha256: f26b6e2094d4b8e59e1137ecb886a2ab7401b7f5b67d755cf53d6c9f2b112adc

Contents?: true

Size: 1.02 KB

Versions: 217

Compression:

Stored size: 1.02 KB

Contents

import java.util.List;

final class RelationshipComputer<T> {

    Relationship computeRelationship(final List<T> firstList, final List<T> secondList) {
        if (firstList.equals(secondList))          return Relationship.EQUAL;
        if (checkIfSublist(firstList, secondList)) return Relationship.SUBLIST;
        if (checkIfSublist(secondList, firstList)) return Relationship.SUPERLIST;
        return Relationship.UNEQUAL;
    }

    private boolean checkIfSublist(final List<T> firstList, final List<T> secondList) {
        final int firstListSize = firstList.size();
        final int secondListSize = secondList.size();

        if (firstListSize > secondListSize) return false;

        final int numberOfSublistCandidates = secondListSize - firstListSize + 1;

        for (int startIndex = 0; startIndex < numberOfSublistCandidates; startIndex++) {
            if (secondList.subList(startIndex, startIndex + firstListSize).equals(firstList)) {
                return true;
            }
        }

        return false;
    }

}

Version data entries

217 entries across 217 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.179 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.178 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.177 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.176 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.175 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.174 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.173 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.172 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.171 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.170 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.169 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.167 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.166 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.165 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.164 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.163 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.162 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.161 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java
trackler-2.2.1.160 tracks/java/exercises/sublist/.meta/src/reference/java/RelationshipComputer.java