更快速地比较String对象

GOX*_*LUS 2 java swing compare

这是我使用的方法:

public void addSong(LibrarySong song){

    //Check if doublicates exist
    for(int i=0; i<intoPanel.getComponentCount(); i++){  
        if(song.getName().toLowerCase().equals(intoPanel.getComponent(i).getName().toLowerCase()))
            return;
    }

    intoPanel.add(song);    

}
Run Code Online (Sandbox Code Playgroud)

....将一个新组件插入到JPanel中.我通过检查名称是否已存在来做到这一点.这很有效,但是当我必须进行D&D或手动插入100.000项时,则运行得越来越慢.

我的问题是:

我能用更好的东西更快地完成这个过程吗?谢谢....

编辑:在回答后我将代码更改为:

   String name;
   public void addSong(LibrarySong song){

    //Check if doublicates exist
    name=song.getName().toLowerCase();
    for(int i=0; i<intoPanel.getComponentCount(); i++){  
        if(name.equals(intoPanel.getComponent(i).getName().toLowerCase()))
            return;
    }

    intoPanel.add(song);    

}
Run Code Online (Sandbox Code Playgroud)

Sta*_*avL 5

song.getName().toLowerCase()在循环之前移动toLowerCase()一次.

更新:Actualy添加10万个组件并不是一个好主意.使用例如JTable的JList来表示具有自定义CellRenderer的歌曲