Сортировка списка В алфавитном порядке

208
15 марта 2018, 09:48

Добрый вечер. Вот суть задания. Построить двунаправленный неупорядоченный список номеров телефонов: семизначных – абонентов; трехзначных – спецслужб. Просмотреть список справа налево и построить упорядоченный однонаправленный список, не включая в него номера телефонов спецслужб. Столкнулся с проблемой сортировки. Точнее даже при создании чтобы он был упорядоченный, получилось только по номеру по убыванию или возрастанию. Но в задании хоть и не указано, но требуется в алфавитном порядке (латиница)

public class ListTwo {
public int number;
public String name;
public ListTwo next;
public ListTwo prev;
public ListTwo(int number, String name) {
    this.number = number;
    this.name = name;
}
public int getNumber() {
    return number;
}
public void setNumber(int number) {
    this.number = number;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
//    вє
public void displayListTwo() {
    System.out.format("# %1$-8s| %2$-20s\n", this.number, this.name);
}

}

public class ListTwoDerections {
ListTwo first;
ListTwo last;
public ListTwoDerections() {
    this.first = null;
    this.last = null;
}
public boolean isEmpty() {
    return first == null;
}
public void insertFirst(int num, String name) {
    ListTwo newList = new ListTwo(num, name);
    if (isEmpty())
        last = newList;
    else
        first.prev = newList;
    newList.next = first;
    first = newList;
}
public void insertLast(int num, String name) {
    ListTwo newList = new ListTwo(num, name);
    if (isEmpty())
        first = newList;
    else {
        last.next = newList;
        newList.prev = last;
    }
    last = newList;
}
public void displayForward(){
    System.out.println("Записная книга 1 - 10 :");
    ListTwo current = first;
    while (current!=null){
        current.displayListTwo();
        current = current.next;
    }
    System.out.println("-------------------------");
}
public void  displayBackward(){
    System.out.println("Записная книга 10 - 1 :");
    ListTwo current = last;
    while (current!=null){
        current.displayListTwo();
        current = current.prev;
    }
    System.out.println("-------------------------");
}
public ListTwo deleteLast(){
    ListTwo temp = last;
    if(first.next == null){
        first = null;
    }else{
        last.prev.next = null;
    }
    last = last.prev;
    return temp;
}
}

public class ListOne {
public long number;
public String name;
public ListOne next;

public ListOne(long number, String name) {
    this.number = number;
    this.name = name;
}
public long getNumber() {
    return number;
}
public void setNumber(int number) {
    this.number = number;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public void displayListOne (){
    System.out.format("# %1$-8s| %2$-20s\n", this.number, this.name);
}
}

import java.util.Arrays;
public class ListOneDirection {
private ListOne first;
public ListOneDirection() {
    first = null;
}
public boolean isEmpty() {
    return (first == null);
}
public void insert(long num, String name) {
    ListOne myList = new ListOne(num, name);
    ListOne previous = null;
    ListOne current = first;
    while (current != null && num > current.getNumber()) {
        previous = current;
        current = current.next;
    }
    if (previous == null) {
        first = myList;
    } else {
        previous.next = myList;
    }
    myList.next = current;
}
public void displayList() {
    System.out.println("Записаная книга: ");
    ListOne current = first;
    while (current != null) {
        current.displayListOne();
        current = current.next;
    }
}

}

//----

public class main {
public static void main(String[] args) {
    ListOneDirection finalList = new ListOneDirection();
    ListTwoDerections startList = new ListTwoDerections();
    startList.insertFirst(1423144, "Viktor");
    startList.insertLast(5261387, "Irina");
    startList.insertFirst(5261387, "Irina");
    startList.insertFirst(102, "Police");
    startList.insertFirst(101, "Firefighter");
    startList.insertFirst(7865332, "Oleg");
    startList.insertLast(103, "Ambulance");
    startList.displayForward();
    startList.displayBackward();
    while (!startList.isEmpty()) {
        ListTwo fict = startList.deleteLast();
        int ficti = fict.getNumber();
        if ((ficti + "").length() == 7) {
            System.out.println(ficti);
        }
    }
}
}

За основу я брал книгу : Лафоре Р. Структуры данных и алгоритмы в Java. Классика Computers Science. 2-е изд

READ ALSO
Java: Не работает перевод строки. String в файл.txt

Java: Не работает перевод строки. String в файл.txt

При сохранении переменной string в файл txt, с помощью FileChooser пропадает перевод строкиПоискав в гугле, нашел решение в виде замены "\n" на

188
Как получить курс валют используя Retrofit

Как получить курс валют используя Retrofit

Задача такова: Создать API для конвертация, у меня будет два EditText и два SpinnerНа первом editText ведем значение, выбираем первый spinner (USD), и на втором...

195
System.exit(0) только сворачивает приложение

System.exit(0) только сворачивает приложение

У меня есть активити, класс broadcast и один сервис Я прослушиваю состояния телефона и когда принимается звонок приложение должно перестать работать...

215
Обновление jar файла

Обновление jar файла

Можно ли как-нибудь просто обновить jar файл во время его выполнения? Вот например, если есть новая версия программы, то я ее качаю, выхожу из программы...

221