code: package resa.evaluation.topology.fp;
  
  import backtype.storm.serialization.SerializableSerializer;
  import com.esotericsoftware.kryo.DefaultSerializer;
  
  import java.io.Serializable;
  import java.util.Arrays;
  
  /**
   * Created by ding on 14-6-5.
   */
  @DefaultSerializer(SerializableSerializer.class)
  public class WordList implements Serializable {
  
      private int[] words;
  
      public WordList(int... words) {
          this.words = words;
      }
  
      public int[] getWords() {
          return words;
      }
  
      @Override
      public int hashCode() {
          return words == null ? 0 : Arrays.hashCode(words);
      }
  
      @Override
      public boolean equals(Object obj) {
          return Arrays.equals(words, ((WordList) obj).words);
      }
  
      @Override
      public String toString() {
          return Arrays.toString(words);
      }
  
      public static int getPartition(int numPart, WordList wordList) {
          return Math.abs(wordList.hashCode()) % numPart;
      }
  
  }
  