对实施的链接列表进行排序

时间:2012-03-26 04:50:16

标签: java

我应该从txt文件中显示客户记录,然后按升序重新显示它们。我有第一部分但是我没有弄清楚排序。这是我在方法public void add(我所拥有的)客户newNode,int dummy)

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

3 个答案:

答案 0 :(得分:1)

使用 Collections.sort(您的列表)以排序顺序获取列表。

然后显示它们使用 iterator()方法获取迭代器。

然后使用 next()方法

迭代元素

答案 1 :(得分:1)

首先实现您需要的一些方法:

public void remove(Customer customer);

public void insert(Customer customer, index);

public void swap(int index1, int index2);

使用所有算法,您必须从列表中取出元素,然后插入列表中的其他位置,或者只是交换到列表中的元素。

答案 2 :(得分:0)

为Customer类创建比较器,或者您可以为Customer类实现类似的接口。然后使用以下排序策略之一:

  1. 如果您已为客户创建了比较器,请使用Collections.sort(您的列表,比较器)
  2. 如果您实施了类似的界面,请使用Collections.sort(您的列表)
  3. 然后出于显示目的使用iterator()方法。你可以通过next()方法迭代列表的下一个元素。