Tag: 链表

JAVA链接列表如何使用for循环进行循环?

您好我正在尝试创建一个遍历链表的for循环。 对于每个数据,它将单独列出。 我想在这里学习链表,所以请不要有数组建议。 有人知道怎么做吗? 示例输出: 187航class 501航class 我之前的代码: public static LinkedList Flights = new LinkedList(); public flightinfo(){ String[] flightNum = {“187”, “501”}; for (String x : flightNum) Flights.add(x); for (???) }

在Java中,为什么在链接列表中插入或删除是一个恒定时间操作? 这不是误导吗?

在列表的特定点插入或删除元素,假设我们已经有一个指向节点的指针,是一个恒定时间操作。 – 来自维基百科关于链接列表的文章 单个链表中的链接列表遍历始终从头开始。 我们必须继续前进,直到我们满足特定条件。 因此,除非我们处理头节点,否则这将使任何操作最坏情况为O(n)。 我们无法直接转到链表中的给定指针。 那为什么说它是一个恒定的时间操作? 编辑:即使我们有一个指向节点的指针,我们必须从头开始才对吗? 那么如何恒定运行呢?

C ++“对象”类

在Java中,有一个名为“Object”的generics类,其中所有类都是其子类。 我正在尝试创建一个链表库(用于学校项目),我已经设法让它只适用于一种类型,但不是多种类型,所以有什么类似的吗? 编辑:我会发布代码,但我现在没有它。

在链表中的单个索引处存储多个数据项?

我试图在我的链表中的单个索引处存储多个数据项。 我教科书中的所有示例似乎都说明每个索引只添加1个数据。 我假设可以添加更多? 例如,使用Collections API存储整数,我将执行以下操作: LinkedList linky = new LinkedList(); int num1 = 2, num2 = 22, num3 = 25, num4 = 1337; linky.add(num1); 我如何将num2,num3和num4添加到列表中的同一个第一个索引? 多谢你们。

链表的“头”是什么?

我正在使用Java链接列表,所以我试图掌握单个链表的概念。 head -> 12 -> 34 -> 56 -> null head.next将是12(也与node1相同)。 然而,什么是头呢? 更新:引用和指针之间有什么区别? Update2:所以如果head是12并且head.next是34 ,那么这并不意味着这个跟随函数会跳过第一个节点以查看它是否为null? public void add(Object data, int index) // post: inserts the specified element at the specified position in this list. { Node temp = new Node(data); Node current = head; // crawl to the requested index or the last element in […]

Java的LinkedList中的clear()impl

我担心这是一个非常愚蠢的问题,但是这里有: 为什么Java的默认LinkedList实现中的clear方法无法遍历列表并取消挂钩所有节点? 为什么不解开标题并将列表的其余部分保持连接 – GC无论如何都会得到它,不是吗? 这是方法: /** * Removes all of the elements from this list. */ public void clear() { Entry e = header.next; while (e != header) { Entry next = e.next; e.next = e.previous = null; e.element = null; e = next; } header.next = header.previous = header; size = 0; modCount++; […]

当我使用offer和poll进行访问时,LinkedList是否是线程安全的?

我有一个链表samples : protected LinkedList samples = new LinkedList(); 我将元素添加到线程1中的列表,如下所示: this.samples.offer(data); 我正在第二个线程中从中检索元素,如下所示: public RawDataset retrieveSample() { return this.samples.poll(); } 这会被认为是线程安全的吗? 即使线程1和2都在修改列表,它们只在列表的头部或尾部专门执行,对吧? 如果不是,任何人都可以指向我在Java API中的一个类与poll / offer并且肯定是线程安全的吗? 先谢谢你。 BTW: Collections.synchronizedList(new LinkedList())不允许我访问offer / poll 。

LinkedList:删除一个对象

这是使用for循环从Java中的LinkedList查找和删除项目的有效方法,是否可能出现不一致: for(ObjectType ob : obList) { if(ob.getId() == id) { obList.remove(ob); break; } }

Java – PriorityQueue与已排序的LinkedList

哪个实现不那么“重”:PriorityQueue或排序的LinkedList(使用Comparator)? 我希望将所有项目排序。 插入将是非常频繁和偶尔我将必须运行所有列表来进行一些操作。

java – 迭代链表

如果我在java中的链表上使用for-each循环,是否保证我将按照它们在列表中出现的顺序迭代元素?