Java 如何在链表中设置天花板?

Java 如何在链表中设置天花板?,java,symbol-table,Java,Symbol Table,我不知道如何返回符号表中大于或等于键的最小键。。如果有人能给我指出正确的方向,那就太好了,因为我不知道从哪里开始 public class LinkedListST<Key extends Comparable<Key>, Value> { private Node first; // a helper linked list data type private class Node { private Key key;

我不知道如何返回符号表中大于或等于键的最小键。。如果有人能给我指出正确的方向,那就太好了,因为我不知道从哪里开始

public class LinkedListST<Key extends Comparable<Key>, Value> {
    private Node first; 

    // a helper linked list data type
    private class Node {
        private Key key;
        private Value val;
        private Node next;

    public Node(Key key, Value val, Node next)  {
        this.key  = key;
        this.val  = val;
        this.next = next;
    }
}

 public Key ceiling (Key key) {
    Key ceiling = null;
    for(Node x = first; x != null; x = x.next){
        if(first.key.compareTo(ceiling) > 0)
            ceiling = key; 
    }
    return null; //TODO
}
公共类LinkedList{
私有节点优先;
//辅助链接列表数据类型
私有类节点{
私钥;
私人价值;
私有节点下一步;
公共节点(键、值val、节点下一步){
this.key=key;
this.val=val;
this.next=next;
}
}
公钥上限(密钥){
键上限=空;
for(节点x=first;x!=null;x=x.next){
如果(第一个键比较(天花板)>0)
天花板=钥匙;
}
返回null;//TODO
}

节点中创建静态变量
类:

private static Key CEILING = null;
然后在构造函数中,将每个新添加的
上限
进行比较:

if(key > CEILING)  // Just algorithm. Use compareTo() method in your case.
    CEILING = key  
这样,在填写完LinkedList之后,您将拥有一个值最高的

或:

if(键<天花板)
天花板=关键点//用于最小关键点

提示:迭代列表,将列表中的每个键与您要查找的键进行比较。您好,感谢您的帮助,我编辑了代码。我不确定我的循环逻辑和if语句是否正确correct@yenyen您的循环很好。只需从方法返回上限即可
if(key < CEILING)
    CEILING = key // for smallest key