我正在将我创建的类中的项目插入链接列表中,但是在我之前,我必须找到正确的索引点以将它们插入(因此项目按字母顺序排列(添加。
我有一些工作代码,但效率非常低,在半年份的机器上花了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
方法