得到当前状态的特征

@return 特征表，其中key是有用的，value没有用
353108
public HashSparseVector getFeatures() {
		if (isFinalState())
			return null;
		
		IFeatureAlphabet features = factory.DefaultFeatureAlphabet();

		int rightFocus = leftFocus + 1;

		HashSparseVector vec = new HashSparseVector();

		// 设定上下文窗口大小
		int l = 2;
		int r = 2;
		for (int i = 0; i <= l; i++) {
			// 词性特征前缀
			String posFeature = "-" + new Integer(i).toString() + "/pos/";
			String lexFeature = "-" + new Integer(i).toString() + "/lex/";

			String lcLexFeature = "-" + new Integer(i).toString()
					+ "/ch-L-lex/";
			String lcPosFeature = "-" + new Integer(i).toString()
					+ "/ch-L-pos/";
			String rcLexFeature = "-" + new Integer(i).toString()
					+ "/ch-R-lex/";
			String rcPosFeature = "-" + new Integer(i).toString()
					+ "/ch-R-pos/";

			if (leftFocus - i < 0) {
				addFeature(features, vec,
						lexFeature + "START" + String.valueOf(i - leftFocus));
				addFeature(features, vec,
						posFeature + "START" + String.valueOf(i - leftFocus));
			} else {
				addFeature(
						features,
						vec,
						lexFeature
								+ instance.words[trees.get(leftFocus - i).id]);
				addFeature(features, vec, posFeature
						+ instance.tags[trees.get(leftFocus - i).id]);

				if (trees.get(leftFocus - i).leftChilds.size() != 0) {
					for (int j = 0; j < trees.get(leftFocus - i).leftChilds
							.size(); j++) {
						int leftChildIndex = trees.get(leftFocus - i).leftChilds
								.get(j).id;
						addFeature(features, vec, lcLexFeature
								+ instance.words[leftChildIndex]);
						addFeature(features, vec, lcPosFeature
								+ instance.tags[leftChildIndex]);
					}
				}

				if (trees.get(leftFocus - i).rightChilds.size() != 0) {
					for (int j = 0; j < trees.get(leftFocus - i).rightChilds
							.size(); j++) {
						int rightChildIndex = trees.get(leftFocus - i).rightChilds
								.get(j).id;
						addFeature(features, vec, rcLexFeature
								+ instance.words[rightChildIndex]);
						addFeature(features, vec, rcPosFeature
								+ instance.tags[rightChildIndex]);
					}
				}
			}
		}

		for (int i = 0; i <= r; i++) {
			String posFeature = "+" + new Integer(i).toString() + "/pos/";
			String lexFeature = "+" + new Integer(i).toString() + "/lex/";

			String lcLexFeature = "+" + new Integer(i).toString()
					+ "/ch-L-lex/";
			String lcPosFeature = "+" + new Integer(i).toString()
					+ "/ch-L-pos/";
			String rcLexFeature = "+" + new Integer(i).toString()
					+ "/ch-R-lex/";
			String rcPosFeature = "+" + new Integer(i).toString()
					+ "/ch-R-pos/";

			if (rightFocus + i >= trees.size()) {
				addFeature(
						features,
						vec,
						lexFeature
								+ "END"
								+ String.valueOf(rightFocus + i
										- trees.size() + 3));
				addFeature(
						features,
						vec,
						posFeature
								+ "END"
								+ String.valueOf(rightFocus + i
										- trees.size() + 3));
			} else {
				addFeature(
						features,
						vec,
						lexFeature
								+ instance.words[trees.get(rightFocus + i).id]);
				addFeature(features, vec, posFeature
						+ instance.tags[trees.get(rightFocus + i).id]);

				if (trees.get(rightFocus + i).leftChilds.size() != 0) {
					for (int j = 0; j < trees.get(rightFocus + i).leftChilds
							.size(); j++) {
						int leftChildIndex = trees.get(rightFocus + i).leftChilds
								.get(j).id;
						addFeature(features, vec, lcLexFeature
								+ instance.words[leftChildIndex]);
						addFeature(features, vec, lcPosFeature
								+ instance.tags[leftChildIndex]);
					}
				}

				if (trees.get(rightFocus + i).rightChilds.size() != 0) {
					for (int j = 0; j < trees.get(rightFocus + i).rightChilds
							.size(); j++) {
						int rightChildIndex = trees.get(rightFocus + i).rightChilds
								.get(j).id;
						addFeature(features, vec, rcLexFeature
								+ instance.words[rightChildIndex]);
						addFeature(features, vec, rcPosFeature
								+ instance.tags[rightChildIndex]);
					}
				}
			}
		}

		return vec;
	}
127471
public final String[] keys()
  {
    String [] keysArr = new String[m_firstFree];

    for (int i = 0; i < m_firstFree; i++)
    {
      keysArr[i] = m_map[i];
    }

    return keysArr;
  }
361639
@Override
	public Map<String, Object> readKeyValues() {
		Map<String, Object> result = new HashMap<String, Object>();
		readKeyValues(result);
		return result;
	}
10283
public function key()
	{
		$keys	= array_keys( $this->pairs );
		return $this->position < $this->count() ? $keys[$this->position] : NULL;
	}
753559
public String get(final Object key) {
    if (this._current.containsKey(key)) {
      return this._current.get(key);
    } else if (this._parent != null) {
      return this._parent.get(key);
    } else {
      return null;
    }
  }
1245020
public Object getValue() {
    if (!type.isCachable() || cachedValue == null) {
      cachedValue = type.getValue(this);
    }
    return cachedValue;
  }
1151575
@Pure
	public List<Object> getCurrentValues() {
		if (this.allValues == null) {
			return Collections.emptyList();
		}
		return Collections.unmodifiableList(this.allValues);
	}
787671
public Set<String> getKeywords() {
		Set<String> kws = this.allKeywords == null ? null : this.allKeywords.get();
		if (kws == null) {
			kws = new TreeSet<>();
			kws.add(getAsKeyword());
			kws.add(getIfKeyword());
			kws.add(getSynchronizedKeyword());
			kws.add(getClassKeyword());
			kws.add(getVolatileKeyword());
			kws.add(getRequiresKeyword());
			kws.add(getFalseKeyword());
			kws.add(getWithKeyword());
			kws.add(getItKeyword());
			kws.add(getSwitchKeyword());
			kws.add(getExtendsKeyword());
			kws.add(getFinalKeyword());
			kws.add(getSuperKeyword());
			kws.add(getProtectedKeyword());
			kws.add(getArtifactKeyword());
			kws.add(getPrivateKeyword());
			kws.add(getAnnotationKeyword());
			kws.add(getFinallyKeyword());
			kws.add(getReturnKeyword());
			kws.add(getWhileKeyword());
			kws.add(getAssertKeyword());
			kws.add(getSpaceKeyword());
			kws.add(getInstanceofKeyword());
			kws.add(getBreakKeyword());
			kws.add(getPublicKeyword());
			kws.add(getIsTrueTrueKeyword());
			kws.add(getTryKeyword());
			kws.add(getOnKeyword());
			kws.add(getCapacityKeyword());
			kws.add(getEventKeyword());
			kws.add(getVarKeyword());
			kws.add(getImportKeyword());
			kws.add(getAgentKeyword());
			kws.add(getTransientKeyword());
			kws.add(getNullKeyword());
			kws.add(getCaseKeyword());
			kws.add(getInterfaceKeyword());
			kws.add(getThisKeyword());
			kws.add(getDispatchKeyword());
			kws.add(getEnumKeyword());
			kws.add(getAbstractKeyword());
			kws.add(getUsesKeyword());
			kws.add(getSkillKeyword());
			kws.add(getDefKeyword());
			kws.add(getFiresKeyword());
			kws.add(getContinueKeyword());
			kws.add(getOverrideKeyword());
			kws.add(getThrowKeyword());
			kws.add(getElseKeyword());
			kws.add(getForKeyword());
			kws.add(getDefaultKeyword());
			kws.add(getNativeKeyword());
			kws.add(getThrowsKeyword());
			kws.add(getCatchKeyword());
			kws.add(getDoKeyword());
			kws.add(getIsStaticAssumeKeyword());
			kws.add(getBehaviorKeyword());
			kws.add(getExtensionExtensionKeyword());
			kws.add(getStaticStaticKeyword());
			kws.add(getImplementsKeyword());
			kws.add(getValKeyword());
			kws.add(getNewKeyword());
			kws.add(getStrictfpKeyword());
			kws.add(getVoidKeyword());
			kws.add(getTypeofKeyword());
			kws.add(getPackageKeyword());
			kws.add(getOccurrenceKeyword());
			this.allKeywords = new SoftReference<>(kws);
		}
		return Collections.unmodifiableSet(kws);
	}
821947
function () {
        var keys = Object.keys(this),
            i = -1,
            len = keys.length,
            values = [];

        while (++i < len) {
            values.push(this[keys[i]]);
        }

        return values;
    }
299246
public <V> V getValue() {
        if (values == null || values.isEmpty()) {
            return null;
        }
        return (V)values.get(0);
    }
1281241
public Keys<K> keys () {
		if (keys == null)
			keys = new Keys(this);
		else
			keys.reset();
		return keys;
	}
576036
public Set<String> keySet() {

		// Copy key set, so return value is independent from the object's internal data structure
		final Set<String> retVal = new HashSet<String>();

		synchronized (this.confData) {

			final Iterator<String> it = this.confData.keySet().iterator();
			while (it.hasNext()) {
				retVal.add(it.next());
			}
		}

		return retVal;
	}
497878
public String key() {

        if (getBundle() == null) {
            return getKey();
        }
        return getBundle().getBundle().key(getKey(), getArgs());
    }
831622
public T get( E key )
    {
        Entry<E, T> entry = null;
        synchronized(this) {
            entry = map.get(key);
            if (map.get(key) == null)
                return null;
        
            entry.prev.next = entry.next;
            entry.next.prev = entry.prev;
            
            entry.prev = this.head;
            entry.next = this.head.next;
            this.head.next.prev = entry;
            this.head.next = entry;
        }
        
        return entry.value;
    }
275075
public List<K> getKeys() {
        synchronized ( _map ) {
            return new java.util.ArrayList<K>( _map.keySet() );
        }
    }
212101
public String getKey()
    {
        String strReturnKey = super.getKey();
        if (m_iNodeIndex > 0) if (strReturnKey != null)
            strReturnKey = strReturnKey + '[' + Integer.toString(m_iNodeIndex) + ']';
        return strReturnKey;
    }
162017
public static function values()
    {
        $values = array();
        foreach (static::toArray() as $key => $value) {
            $values[$key] = new static($value);
        }
        return $values;
    }