Как я могу отсортировать этот список (по убыванию)? Он добавляет числа, но сортирует их в порядке возрастания, но мне бы хотелось, чтобы он нисходил (без использования каких-либо внешних библиотек или чего-то еще). Я попытался понять это, но ничего не придумал.Сортировка списка (по убыванию)
private void addNewElement()
{
//getting the input
System.out.print("Please type the number to be added to the list: ");
Integer newValue = null;
while(newValue == null)
{
try
{
newValue = Integer.parseInt(userInput.nextLine());
}
catch (final Exception e)
{
System.out.println("Wrong value. Please insert new value.");
}
}
//creating new element based on the input
MyListElement newElement = new MyListElement(newValue);
//if not first
if (firstElement != null)
{
placeElementInList(newElement);
}
else
{
firstElement = newElement; //if first
}
}
//if not first
private void placeElementInList(final MyListElement newElement)
{
//if smaller than first
if (newElement.value < firstElement.value)
{
newElement.nextElement = firstElement; //new points to first
firstElement = newElement; //and becomes first
}
else
{
MyListElement previousElement = firstElement; //have to remember previous element
MyListElement elementInList = firstElement.nextElement; //currently checked.
while (elementInList != null)
{
if (newElement.value < elementInList.value) //if new element is smaller that currently checked
{
break; //break - put it in current position.
}
previousElement = elementInList; //if not, move forward, substitute variables
elementInList = elementInList.nextElement;
}
previousElement.nextElement = newElement; //set the new element at the proper position
newElement.nextElement = elementInList; //
}
}
Используйте 'Collections.sort' и' Comparator'. – Mena
Descending - это то же самое, что и восхождение, кроме того, что вы переворачиваете знак. Вы должны иметь возможность изменить один для другого, изменив одну строку кода. –
'if (newElement.value> elementInList.value)' ... – R2B2