链表 - 我不明白 lastIndexOf 方法在 java 中是如何工作的



我必须编写一个名为LastIndexOf的方法,该方法接受整数值作为参数,并返回该值最后一次出现的列表中的索引,如果找不到该值,则返回-1。这是我的代码,但它没有返回任何内容。对我来说,它看起来总是会返回-1,但我在输出中看不到它,因为它没有打印方法返回的内容。

这些是列表存储的值。

列表->[2,5,7,24,5,9,13,2]

    public class LastIndexOf {
    public static void main(String[] args) {
    System.out.println("index of 5 = " + list.lastIndexOf(5)); // should to return index of 5= 4
    System.out.println("index of 100 = " + list.lastIndexOf(100)); // should return index of 100 = -1
    }
    public static int lastIndexOf (int element) {
    int index = 0;
    ListNode current = list;
    while (current != null) {
       if (current.data == element) {
           return index;
       }
       index ++;
       current = current.next;
    }
    return -1;
    }
}

这是我得到的输出:

index of 5 = 
index of 100 = 

此代码段返回正确的值。

public class Test
{
    public static java.util.List<Integer> list = Arrays.asList(2, 5, 7, 24, 5, 9, 13, 2);
    public static void main(String[] args)
    {
        System.out.println("index of 5 = " + list.lastIndexOf(5));
        System.out.println("index of 100 = " + list.lastIndexOf(100));
        System.out.println(lastIndexOf(5));
        System.out.println(lastIndexOf(100));
    }

    public static int lastIndexOf (int element) {
    int index = 0;
    int found = -1;
    List<Integer> current = list;
    while (index < current.size()) {
       if (current.get(index) == element) {
           found = index;
       }
       index ++;
    }
    return found;
    }
}

我不知道ListNode是用来做什么的,因为实际上并不需要它。

我想鼓励您看看ArrayList<>openjdk中的实现看起来像:ArrayList.java openjdk 中的ArrayList.lastIndexOf

此代码不应该有2个返回语句。此外,您正在使一个节点等于整个列表;当它应该等于列表的头时。

这个代码是给你纠正的吗?我之所以这么问,是因为它似乎并不是按块开发的;相反,它看起来是自上而下写的。

我想使用这个:

    public int lastIndexOf (int value) {
        int index = -1;
        int size = size();
        int count = 0;
        ListNode current = front;
        for (int i = 0; i < size; i++) {
            int indexValue = current.data;
            if (value == current.data) {index = count;}
            count++;
            current = current.next;
         }
         return index;
     }

相关内容

  • 没有找到相关文章

最新更新