Java 如何比较节点列表中的对象?

Java 如何比较节点列表中的对象?,java,nodes,Java,Nodes,我正在尝试编写一个方法,该方法接受一个对象并将其与节点列表进行比较。然后,它将该列表中小于它的每个元素添加到一个新列表中。我很接近,但前两个元素没有复制过来 public LList<String> getAllLessThan(Comparable<T> anObject) { LList<String> newList = new LList(); Node currentNode = firstNode; for (int i =

我正在尝试编写一个方法,该方法接受一个对象并将其与节点列表进行比较。然后,它将该列表中小于它的每个元素添加到一个新列表中。我很接近,但前两个元素没有复制过来

public LList<String> getAllLessThan(Comparable<T> anObject) {
    LList<String> newList = new LList();
    Node currentNode = firstNode;
    for (int i = 0; i < length; i++)
    {
        if (currentNode.data.compareTo((T) anObject) == -1)
        {
            newList.add((String) currentNode.data);
        }
        currentNode = currentNode.next;
    }
    return newList;
}
public-LList-getAllLessThan(可比较的对象){
LList newList=新的LList();
节点currentNode=firstNode;
for(int i=0;i
列表的前两个元素应包括在内,但被忽略

    String[] names = {"Abby", "Bobby", "Carla", "Doug"};
    LList<String> nameList = new LList(names, 4);

    String[] newNames = {"Edgar", "Frank"};
    nameList.addAll(newNames);
    System.out.println("Output should be Abby, Bobby, Carla, Doug, Edgar, Frank");
    nameList.display();
    System.out.println();

    nameList.add("Carrie");
    LList<String> newList = nameList.getAllLessThan("Doug");
    System.out.println("Output should be Abby, Bobby, Carla, Carrie");
    newList.display();
    System.out.println();
String[]name={“Abby”、“Bobby”、“Carla”、“Doug”};
LIST名称列表=新的LIST(名称,4);
字符串[]newNames={“Edgar”,“Frank”};
nameList.addAll(新名称);
System.out.println(“输出应该是Abby、Bobby、Carla、Doug、Edgar、Frank”);
name list.display();
System.out.println();
姓名列表。添加(“嘉莉”);
LList newList=nameList.getAllLessThan(“Doug”);
System.out.println(“输出应该是Abby,Bobby,Carla,Carrie”);
newList.display();
System.out.println();
String.compareTo()

如果两个字符串不同,则要么它们在某个索引处具有不同的字符,该索引是两个字符串的有效索引,要么它们的长度不同,要么两者都不同。如果它们在一个或多个索引位置具有不同的字符,则k是此类索引的最小值;然后,使用<运算符确定其在位置k处的字符具有较小值的字符串按字典顺序位于另一个字符串之前。在本例中,compareTo返回两个字符串中位置k处两个字符值的差值,即:

如果索引位置不存在差异,则按字典顺序,较短字符串优先于较长字符串。在本例中,compareTo返回字符串长度的差值,即值:

String1.compareTo(String2)方法返回:

0 when strings are equal
> 0 when String1 > String2
< 0 when String1 < String2

if(currentNode.data.compareTo((T)anObject)<0)

您没有发布
LList
的完整实现,因此很难猜测,但是如果我必须把钱放在某个地方,我敢打赌
length
没有正确维护,或者
display()
有问题。您在for循环中使用的“length”值是多少?LList代表LinkedList吗,你是指LinkedList吗?
this.length()-anotherString.length()
0 when strings are equal
> 0 when String1 > String2
< 0 when String1 < String2
if (currentNode.data.compareTo((T) anObject) == -1)
if (currentNode.data.compareTo((T) anObject) < 0)