有效地插入字母顺序中的链接列表中



我正在将我创建的类中的项目插入链接列表中,但是在我之前,我必须找到正确的索引点以将它们插入(因此项目按字母顺序排列(添加。

我有一些工作代码,但效率非常低,在半年份的机器上花了5分钟的时间来添加10000个项目。我想知道是否有更有效的方法。

到目前为止,我设法使它工作的唯一方法就是这样。任何其他方法最终都会错误地添加项目(我猜想不正确地添加到列表的末尾(

在所示的代码中,我以一个名称(以及其他两个变量,无关紧要的,已经是ItemClass的一部分(中的,以下代码

if (llist.size() == 0) {
    llist.add(itemClass);
} 
else if (llist.get(0).name.compareTo(name)>0) {
    llist.add(0, itemClass);
} 
else if (llist.get(llist.size() - 1).name.compareTo(name) < 0) {
    llist.add(llist.size(), itemClass);
} 
else {
    int i = 0;
    while (llist.get(i).name.compareTo(name) < 0) {
        i++;
    }
    llist.add(i, itemClass);
}

目前,这完全按照预期的方式工作,但正如所说的,它需要非常长的时间。我只是期望有一个很大的利润。

您有一个链接列表,但您不使用其实际"链接"

删除所有呼叫get

而不是调用get,您应该使用Listiterator。

另外,您应该使用Listiterator的add方法

最新更新