public Link insert(String data, int where)
{
Link temp = first;
//If list is empty, insert as first
if (first == null)
{
first = new Link(data, where);
return first;
}
//List is not empty
else
{
while (temp != null)
{
//If data is less than first, then insert as first
if (data.compareTo(temp.getdData()) < 0 && temp == first)
{
Link newLink = new Link(data, where);
newLink.setNext(first);
first.setPrevious(newLink);
first = newLink;
return newLink;
}
//If data is less than current, then insert before current
else if (data.compareTo(temp.getdData()) < 0)
{
Link newLink = new Link(data, where);
newLink.setNext(temp);
newLink.setPrevious(temp.getPrevious());
temp.getPrevious().setNext(newLink);
temp.setPrevious(newLink);
return newLink;
}
//If data is more, but your at the end of the list.
else if (data.compareTo(temp.getdData()) > 0 && temp.getNext() == null)
{
Link newLink = new Link(data, where);
temp.setNext(newLink);
newLink.setPrevious(temp);
newLink.setNext(null);
last = newLink;
return newLink;
}
//Else keep going forward
else
temp = temp.next;
}
}
return temp;
}
Я могу вставить его в список, но по какой-то причине он не будет вставляться по порядку. Например, если данные ссылки являются «Hello», и я хочу вставить ссылку с «aaa», она не будет вставлять новую ссылку перед ссылкой «Hello».У вас возникли проблемы с вставкой в список с двойным соединением с двойной связью с Java
Java строки используют Unicode, а не ASCII. Но, да, кодовый блок (первый и единственный) UTF-16 для «a» больше, чем блок кода UTF-16 (первый и единственный) для «H». –