prefixtrie.java

来自「struts 2 核心包 的源码 有错误是难免的」· Java 代码 · 共 66 行

JAVA
66
字号
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   PrefixTrie.java

package org.apache.struts2.util;


public class PrefixTrie
{
	static class Node
	{

		Object value;
		Node next[];

		Node()
		{
			next = new Node[128];
		}
	}


	private static final int SIZE = 128;
	Node root;

	public PrefixTrie()
	{
		root = new Node();
	}

	public void put(String prefix, Object value)
	{
		Node current = root;
		for (int i = 0; i < prefix.length(); i++)
		{
			char c = prefix.charAt(i);
			if (c > '\200')
				throw new IllegalArgumentException((new StringBuilder()).append("'").append(c).append("' is too big.").toString());
			if (current.next[c] == null)
				current.next[c] = new Node();
			current = current.next[c];
		}

		current.value = value;
	}

	public Object get(String key)
	{
		Node current = root;
		for (int i = 0; i < key.length(); i++)
		{
			char c = key.charAt(i);
			if (c > '\200')
				return null;
			current = current.next[c];
			if (current == null)
				return null;
			if (current.value != null)
				return current.value;
		}

		return null;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?