2012-03-26 4 views
0

iam должен отображать записи клиентов из txt-файла, а затем повторно отображать их в порядке возрастания. У меня есть первая часть, но я не могу определить сортировку. Вот что я имею под метод общественного недействительными добавить (newNode клиентов, внутр фиктивная)сортировать реализованный список ссылок

public void add(Customer newNode, int dummy) 

    { 
    if (head == null) // The first node 
    { 
    head = tail = this; 
    head.setData(newNode); size=1; 
    return; 
    } //************need to figure this out 
    CustomerList t = new CustomerList(); 
    head.setNext(temp); 
     getHead().getNext(); 
     head = temp; 

     //this is the part am trying to figure out 

    ++size; 
    } // add 
// Append the new node to the end of list 
public void add(Customer newNode) 
    { 
    if (head == null) // The first node 
     { 
     head = tail = this; 
     head.setData(newNode); 
     size=1; 
     return; 
     } 
    CustomerList temp = new CustomerList(newNode); 
    tail.setNext(temp); 
    getHead().getNext(); 
    tail = temp; 
    ++size; 
    } // add 

// retrieve a specific node by index 
// The index starts with 0 
public Customer get(int which) 
    { 
    if (which > size-1) 
     return null; 
    if (size < 0) 
     return null; 
    CustomerList temp = head; 
    for (int k=0; k < size; ++k) 
     { 
     if (which == k) 
      break; 
     temp = temp.getNext(); 
     } 
    return temp.getData(); 
    } // get 
+1

Можете ли вы использовать такие «стандартные java» вещи, как коллекции и алгоритмы, или вы должны делать все сами? – John3136

ответ

1

использование Collections.sort (ваш список), чтобы получить список в отсортированном порядке.

Затем для отображения им получить итератор, используя итератор() метод.

Затем перебирать элементы, используя следующий() метода

+0

Я предполагаю, что он должен сортировать его без использования 'Collection.sort()', учитывая, что у него есть ужасный домашний тег. –

+0

Мне не разрешено использовать Collection.sort() Я попробовал это и ему было предложено повторить его. – Angel918

+0

@ Angel918 вы можете сказать, с каким полем вы хотите отсортировать записи. Я имею в виду сортировку их с использованием идентификатора или имени клиента или что? –

1

Начните с реализацией некоторых методов, которые вам понадобятся:

public void remove(Customer customer); 

public void insert(Customer customer, index); 

public void swap(int index1, int index2); 

При всем алгоритме вы должны принять элемент из список и вставьте в другое место в списке или просто замените элементы в списке.

+0

большое спасибо, позвольте мне попробовать this.I думаю, что я уже реализовал public void insert() – Angel918

0

создать компаратор для класса Customer или вы можете реализовать сопоставимый интерфейс для класса Customer. Затем используйте один из ниже сортировочной стратегии:

  1. Если вы создали компаратор для своего клиента, то использовать Collections.sort (список, ваш компаратор)
  2. Если вы реализовали сравнимый интерфейс затем использовать Collections.sort (ваш список)

Тогда для использования цели использовать итератор() способ. И вы можете перебирать следующий элемент списка через метод next().

Смежные вопросы