Java 使用Ehcache自动完成
我正在开发的表单中有几个自动完成字段。我最大的一个包含近20k条记录,最小的包含约1k条记录。到目前为止,我只是使用树形图来处理这个任务,但是我发现它非常有效。我目前的结构是这样的Java 使用Ehcache自动完成,java,autocomplete,ehcache,Java,Autocomplete,Ehcache,我正在开发的表单中有几个自动完成字段。我最大的一个包含近20k条记录,最小的包含约1k条记录。到目前为止,我只是使用树形图来处理这个任务,但是我发现它非常有效。我目前的结构是这样的 private SortedMap<String, Set<String>> cache; public AutocompleteCacheServiceImpl() { cache = Collections.synchronizedSortedMap(new TreeMap<
private SortedMap<String, Set<String>> cache;
public AutocompleteCacheServiceImpl() {
cache = Collections.synchronizedSortedMap(new TreeMap<String, Set<String>>());
}
private-SortedMap缓存;
公共自动完成CacheServiceImpl(){
cache=Collections.synchronizedSortedMap(新树映射());
}
虽然人口众多
private void populateCache(String id, String name) {
int len = name.length();
for (int i = 1; i <= len; i++) {
String key = name.substring(0, i).toLowerCase();
if(this.cache.containsKey(key)) {
Set<String> exist = cache.get(key);
if(!exist.contains(id)) {
exist.add(id);
}
} else {
Set<String> _e = new HashSet<String>();
_e.add(id);
this.cache.put(key, _e);
}
}
}
private void populateCache(字符串id、字符串名称){
int len=name.length();
对于(inti=1;i如果您希望优化性能,请看一看,有一个实现SortedMap的实现