code: private double getScore(ArrayList candidateList) {
      matched = 0;
      largestIndex = -1;
      double scoreValue = 0;
      HashMap tMap = new HashMap(),
          uMap = new HashMap();
      java.util.Iterator it = candidateList.iterator();
      while (it.hasNext()) {
        TagLink.Candidates actualCandidates = (TagLink.Candidates) it.next();
        Integer actualTPos = new Integer(actualCandidates.getTPos()),
            actualUPos = new Integer(actualCandidates.getUPos());
        if ( (!tMap.containsKey(actualTPos)) &&
            (!uMap.containsKey(actualUPos))) {
          double actualScore = actualCandidates.getScore();
          scoreValue += actualScore;
          tMap.put(actualTPos, null);
          uMap.put(actualUPos, null);
          if (largestIndex < actualTPos.intValue()) {
            largestIndex = actualTPos.intValue();
          }
          matched++;
        }
      }
      return scoreValue;
    }
docs: getScore sum the total score of a candidate list of pair of characters.
  
  @param candidateList ArrayList
  @return double