Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Ehcache自动完成_Java_Autocomplete_Ehcache - Fatal编程技术网

Java 使用Ehcache自动完成

Java 使用Ehcache自动完成,java,autocomplete,ehcache,Java,Autocomplete,Ehcache,我正在开发的表单中有几个自动完成字段。我最大的一个包含近20k条记录,最小的包含约1k条记录。到目前为止,我只是使用树形图来处理这个任务,但是我发现它非常有效。我目前的结构是这样的 private SortedMap<String, Set<String>> cache; public AutocompleteCacheServiceImpl() { cache = Collections.synchronizedSortedMap(new TreeMap<

我正在开发的表单中有几个自动完成字段。我最大的一个包含近20k条记录,最小的包含约1k条记录。到目前为止,我只是使用树形图来处理这个任务,但是我发现它非常有效。我目前的结构是这样的

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的实现