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)
song.getName().toLowerCase()在循环之前移动toLowerCase()一次.
更新:Actualy添加10万个组件并不是一个好主意.使用例如JTable的JList来表示具有自定义CellRenderer的歌曲