public ReturnCode filterColumn(Cell cell) {
    byte[] qualifier = CellUtil.cloneQualifier(cell);
    TreeSet<byte[]> lesserOrEqualPrefixes =
      (TreeSet<byte[]>) sortedPrefixes.headSet(qualifier, true);

    if (lesserOrEqualPrefixes.size() != 0) {
      byte[] largestPrefixSmallerThanQualifier = lesserOrEqualPrefixes.last();

      if (Bytes.startsWith(qualifier, largestPrefixSmallerThanQualifier)) {
        return ReturnCode.INCLUDE;
      }

      if (lesserOrEqualPrefixes.size() == sortedPrefixes.size()) {
        return ReturnCode.NEXT_ROW;
      } else {
        hint = sortedPrefixes.higher(largestPrefixSmallerThanQualifier);
        return ReturnCode.SEEK_NEXT_USING_HINT;
      }
    } else {
      hint = sortedPrefixes.first();
      return ReturnCode.SEEK_NEXT_USING_HINT;
    }
  }
This filter is used for selecting only those keys with columns that matches a particular prefix.
For example, if prefix is 'an', it will pass keys will columns like 'and', 'anti' but not keys
with columns like 'ball', 'act'.
hbase-client/src/main/java/org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java