收集的工具方法
package org.codehaus.jackson.util;import java.util.Map;import java.util.LinkedHashMap;/** * Singleton class that adds a simple first-level cache in front of * regular String.intern() functionality. This is done as a minor * performance optimization, to avoid calling native intern() method * in cases where same String is being interned multiple times. *<p> * Note: that this class extends {@link LinkedHashMap} is an implementation * detail -- no code should ever directly call Map methods. */@SuppressWarnings("serial")public final class InternCache extends LinkedHashMap<String,String>{ /** * Size to use is somewhat arbitrary, so let's choose something that's * neither too small (low hit ratio) nor too large (waste of memory) */ private final static int MAX_ENTRIES = 192; public final static InternCache instance = new InternCache(); private InternCache() { super(MAX_ENTRIES, 0.8f, true); } @Override protected boolean removeEldestEntry(Map.Entry<String,String> eldest) { return size() > MAX_ENTRIES; } public synchronized String intern(String input) { String result = get(input); if (result == null) { result = input.intern(); put(result, result); } return result; }}?
??
import java.util.HashMap;import java.util.Map;public class URLParamAnalysis {private Map<String, String> paramMap = new HashMap<String, String>();public void analysis(String url) {paramMap.clear();if (!"".equals(url)) {url = url.substring(url.indexOf('?') + 1);String paramaters[] = url.split("&");for (String param : paramaters) {String values[] = param.split("=");paramMap.put(values[0], values[1]);}}}public String getParam(String name) {return paramMap.get(name);}public static void main(String[] args) {String test = "name=helddlo&id=100";URLParamAnalysis urlAnalysis = new URLParamAnalysis();urlAnalysis.analysis(test);System.out.println("name = " + urlAnalysis.getParam("name"));System.out.println("id = " + urlAnalysis.getParam("id"));}}?
?
?