java - 我正在尝试创建一个循环链接列表请告诉我这是否是正确的方法

标签 java data-structures linked-list circular-list

我已经实现了逻辑,就像如果我给出一个尚不存在的索引,那么它会将索引更改为提醒(与我猜的旋转相同)。

import java.util.LinkedList;

public class MycircularlinkedList extends LinkedList {

    private static int count = 0;

    public Object get(int i) {
        System.out.println("count==" + count);
        if (i > count) {
            i = i % count;
            return super.get(i);

        } else {
            return super.get(i);
        }

    }

    public boolean add(Object o) {

        super.add(o);
        count++;
        return true;
    }

    public void add(int i, Object o) {
        if (i > count)
            i = i % count;
        super.add(i, o);
        count++;
    }
}

最佳答案

我可以看到几点:

  1. count 是静态的,这意味着这里只能有一个数字。可能不是你想要的
  2. count 是多余的,请使用 Collection#size()
  3. mod (%) 的伟大之处在于它适用于所有数字,您不需要有条件。 2%12==14%12==-10%12
  4. 如果您要删除 count 属性,则可以删除覆盖的 #add(Object o) 逻辑,只需 return super .add(o);

关于java - 我正在尝试创建一个循环链接列表请告诉我这是否是正确的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28688947/

相关文章:

java - Java中的数据结构,支持快速搜索和删除数组中的重复项

java - 事件监听器中未捕获的异常

仅当定义了值时才更新 Python 字典

c# - CS0246 : The type or namespace name `T' could not be found. 是否缺少 using 指令或程序集引用?在 C# 中

mysql - 在数据库中有效存储变量值

c++ - 向链表的末尾添加值并从前面删除 C++

c - 带字符串的链表

java - 使用android从字母数字字符串中提取数字

java - 如何在删除 Firebase 中的行后刷新 Recyclerview 适配器中的数据

java - Java ExecutorService死锁?