# Class JaccardDistance

java.lang.Object
org.apache.commons.text.similarity.JaccardDistance

All Implemented Interfaces:
  `BiFunction<CharSequence, CharSequence, Double>, EditDistance<Double>, ObjectSimilarityScore<CharSequence, Double>, SimilarityScore<Double>`

public class JaccardDistance extends Object implements EditDistance<Double>
Measures the Jaccard distance of two sets of character sequence. Jaccard distance is the dissimilarity between two sets. It is the complementary of Jaccard similarity.

For further explanation about Jaccard Distance, refer https://en.wikipedia.org/wiki/Jaccard_index

Since:
  1.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JaccardDistance()`
  Creates a new instance.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Double`
  `apply(CharSequence left, CharSequence right)`
  Computes the Jaccard distance of two set character sequence passed as input.
  `<E> Double`
  `apply(SimilarityInput<E> left, SimilarityInput<E> right)`
  Computes the Jaccard distance of two set character sequence passed as input.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface BiFunction

  `andThen`

- ## Constructor Details

  - ### JaccardDistance

    public JaccardDistance()
    Creates a new instance.

- ## Method Details

  - ### apply

    public Double apply(CharSequence left, CharSequence right)
    Computes the Jaccard distance of two set character sequence passed as input. Calculates Jaccard similarity and returns the complement of it.
    Specified by:
      `apply` in interface `BiFunction<CharSequence, CharSequence, Double>`
    Specified by:
      `apply` in interface `ObjectSimilarityScore<CharSequence, Double>`
    Specified by:
      `apply` in interface `SimilarityScore<Double>`
    Parameters:
      `left` - first input sequence.
      `right` - second input sequence.
    Returns:
      The Jaccard distance.
    Throws:
      `IllegalArgumentException` - if either String input `null`.

  - ### apply

    public <E> Double apply(SimilarityInput<E> left, SimilarityInput<E> right)
    Computes the Jaccard distance of two set character sequence passed as input. Calculates Jaccard similarity and returns the complement of it.
    Type Parameters:
      `E` - The type of similarity score unit.
    Parameters:
      `left` - first input sequence.
      `right` - second input sequence.
    Returns:
      index.
    Throws:
      `IllegalArgumentException` - if either String input `null`.