huaban / jieba-analysis

结巴分词(java版)
https://github.com/huaban/jieba-analysis
Apache License 2.0
2.55k stars 835 forks source link

topN取词时,之前的方法是遍历循环,每次都删除索引为topN的对象, 如果数据量大删除时会导致底层数据的多次移动 #103

Open echohlne opened 4 years ago

echohlne commented 4 years ago

topN取词时,之前的方法是遍历循环,每次都删除索引为topN的对象, 如果数据量大删除时会导致底层数据的多次移动

112292454 commented 1 year ago

作者这个写法雀实迷惑……而且上面的排序现在java8也会报错 sublist好像只是截取一个视图,没有释放其余不要的词的空间吧,还是新开一个list,把top的add进去好一点? 不过这东西五年了()估摸也没人看

                keywordList.sort(Keyword::compareTo);
        List<Keyword> res=new ArrayList<>();
        topN=Math.min(topN,keywordList.size());
        for (int i = 0; i < topN; i++) {
            res.add(keywordList.get(i));
        }
    @Override
    public int compareTo(Keyword o){
        return Double.compare(o.tfidfvalue,this.tfidfvalue);
    }