lots of exercises in java... from https://github.com/exercism/java

RelationshipComputer.java 1.0KB

123456789101112131415161718192021222324252627282930
  1. import java.util.List;
  2. final class RelationshipComputer<T> {
  3. Relationship computeRelationship(final List<T> firstList, final List<T> secondList) {
  4. if (firstList.equals(secondList)) return Relationship.EQUAL;
  5. if (checkIfSublist(firstList, secondList)) return Relationship.SUBLIST;
  6. if (checkIfSublist(secondList, firstList)) return Relationship.SUPERLIST;
  7. return Relationship.UNEQUAL;
  8. }
  9. private boolean checkIfSublist(final List<T> firstList, final List<T> secondList) {
  10. final int firstListSize = firstList.size();
  11. final int secondListSize = secondList.size();
  12. if (firstListSize > secondListSize) return false;
  13. final int numberOfSublistCandidates = secondListSize - firstListSize + 1;
  14. for (int startIndex = 0; startIndex < numberOfSublistCandidates; startIndex++) {
  15. if (secondList.subList(startIndex, startIndex + firstListSize).equals(firstList)) {
  16. return true;
  17. }
  18. }
  19. return false;
  20. }
  21. }