如何使用特定类编写方法

时间:2015-02-18 21:59:11

标签: java object methods task

所以我尝试使用名为

的链接列表编写方法
public void insert(Task t)

我不太确定如何编写该方法,但我知道如何编写一个名为

的类似方法
public void insert(int index, int value)

看起来像这样:

public void insert(int index, int value) throws ListException {
    int i = 0;

    if (index > getLength()) {
        throw new ListException("Index beyond bounds");
    }

    IntegerListNode prev = null;
    IntegerListNode curr = head;

    while (curr != null) {
        if (index > i) {
            i++;
            prev = curr;
            curr = curr.next;
        } else {
            break;
        }
    }

    IntegerListNode newNode = new IntegerListNode(value);
    newNode.next = curr;

    if (prev == null) {
        head = newNode;
    } else {
        prev.next = newNode; 
    }

    System.out.println(this);
}

此方法的作用是在指定索引的链接列表中插入值。我应该做的是编写一个类似的方法,但不是使用整数对象,我应该使用一个名为task的类。这是班级的样子。

public class Task {
    int priority;
    int number;

    Task(int priority, int number) {
        this.priority = priority;
        this.number   = number;
    }
}

那么我应该如何调用该方法以及我将该方法放入该方法中。

编辑:这是我写的tasklistnode:

class TaskListNode {
    int priority;
    int number;
    TaskListNode next;

    TaskListNode(int priority, int number) {
        this.priority = priority;
        this.number   = number;
        this.next     = null;
    }
}

1 个答案:

答案 0 :(得分:0)

免责声明:虽然有些信息似乎缺失,但有时编写良好的代码(合理命名的变量,方法和类)可以​​作为良好的文档。我正在基于它得出一些结论。


<强>假设:

  • 支持随机insert
  • 的链接列表实现
  • 名为Taskpriority
  • 的班级 提供ListException时会抛出
  • index,但在提供Task时不会抛出。{/ li>

可能的用例:

任务的优先级列表(Task对象存储在按priority排序的链接列表中。)


<强>解决方案:

  • 创建类似于TaskListNode的课程IntegerListNode 它应该在其构造函数中接受Task
  • 写出public void insert(Task t)方法,就像你写的那样 由于未专门提供索引,因此无法抛出ListException
  • 删除边界检查代码。
    index =&gt;否ListException
  • 编辑循环(用于遍历链表直到达到index),使其遍历链表,直到找到比指定Task更低的优先级Task
    高优先级Task应位于列表中。

希望这有帮助。
祝你好运。