![](/img/trans.png)
[英]How do I output Linked List which holds objects using java.util.ListIterator?
[英]Using listIterator to add objects alphabetically to a linked list
我正在嘗試按字母順序將字符串添加到鏈接列表。 除非我調用add()方法,我的迭代器對象里都工作正常的,這將當前迭代器的位置,而不是之前之后的字符串,從而搞亂了我的字母順序排列。
有沒有辦法讓它在迭代器的當前位置之前添加對象?
預先感謝,泰勒
ps好像其他人的堆棧溢出有完全相反的問題,很奇怪。
//addElement method, adds string to the linked list in alphabetical order
public void addElement(Object obj)
{
String inString = (String) obj;
iter = listIterator();
Node newNode = new Node();
newNode.data = obj;
if (first != null)
{
int checker = 0;
while (iter.hasNext()==true && checker == 0)
{
String testString = (String) iter.next();
int i = inString.compareTo(testString);
if (i <= 0)
{
iter.add((Object) inString);
checker++;
}
}
if (checker == 0)
iter.add((Object) inString);
}
else
{
//iter.add((Object) inString);
addFirst((Object) inString);
}
}
這是一種非常低效的排序方式。 嘗試改用sort函數。 如果必須插入,請不要使用列表迭代器-保留要查看的位置的索引,並使用add(index, value)
版本-https: //docs.oracle.com/javase /7/docs/api/java/util/LinkedList.html#add(int,%20E)
您還可以在迭代器上使用previousIndex()
https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html#previousIndex()查找之前要插入的索引。 這不太可能使您高興。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.