Tag: linked list

哪一个运行得更快,ArrayList或LinkedList?

List li = new LinkedList(); for (int i = 0; i < 100; i++) { li.add(i); } long start1 = System.nanoTime(); li.get(57); long end1 = System.nanoTime(); long diff1 = end1-start1; System.out.println(“Time taken by LinkedList = “+diff1); List al = new ArrayList(); for (int i = 0; i < 100; i++) { al.add(i); } 我在两个列表上执行的操作,当我打印出所用的时间时,ArrayList总是比LinkedList运行得更快。 有人可以解释哪个时间表现更好吗? […]

使用链接列表实现堆栈

在Java中使用链表实现堆栈的最佳方法是什么? 编辑:我会使用干净的代码定义最有效。 我已经使用了一个数组来实现一个堆栈,但我不熟悉链接列表,所以想知道是否有人可以帮我实现类似下面的内容: public class StackArray{ private Object [] objArray; private int stackSize; public StackArray(){ objArray = new Object[50]; stackSize = 0; } public StackArray(int size){ objArray = new Object[size]; stackSize = 0; } //public interface methods – push, pop, top, empty & clear public void push(Object o)throws StackArrayException{ if(stackSize < objArray.length){ objArray[stackSize] = o; […]

Java LinkedList – 检索操作之间的差异

LinkedList以下每组元素检索操作中的不同方法之间是否存在任何差异? 返回null +删除操作: poll() , pollFirst() 。 返回null +不删除操作: peek() , peekFirst() 。 抛出exception+删除操作: pop() , remove() , removeFirst() 。 抛出exception+不删除操作: element() , getFirst() 。 插入方法中存在类似的重复。 如果没有这样的差异,我希望在方法的javadoc中提到它(类似于旧的“这就像调用……”)。 它只是一个草率的文件,还是我错过了什么?

计算链表中的值的总和

我最近在接受采访时得到了编程问题。 有2个链接列表。 每个节点存储1到9的值(表示数字的一个索引)。 因此123将是链接列表1-> 2-> 3 任务是创建一个函数: static LinkedListNode getSum(LinkedListNode a, LinkedListNode b) 这将返回2个链表列表中的值的总和。 如果arraysa是:1-> 2-> 3-> 4 并且arraysb是:5-> 6-> 7-> 8 答案应该是:6-> 9-> 1-> 2 这是我的算法: 遍历a和b中的每个节点,将值作为整数获取并添加它们。 使用这些值创建新的链接列表。 这是代码:它大概是我假设的复杂度为O(n)。 一旦通过每个数组输入并一次创建输出数组。 任何改进? 更好的算法……或代码改进 public class LinkedListNode { LinkedListNode next; int value; public LinkedListNode(int value) { this.value = value; this.next = null; } static int getValue(LinkedListNode […]

LinkedList Java遍历和打印

如果你能帮忙回答这个问题我真的很感激: 我已经使用Java以非常标准的方式创建了自定义链表。 以下是我的课程: public class Node { private Object obj; private Node next; public Node(Object obj){ this(obj,null); } public Node(Object obj,Node n){ this.obj = obj; next = n; } public void setData(Object obj){ this.obj = obj; } public void setNext(Node n){ next = n; } public Object getData(){ return obj; } public Node getNext(){ return […]

何时在ArrayList或LinkedList上使用GlueList?

我遇到了一个名为GlueList的新列表实现 我想知道何时应该使用ArrayList或LinkedList。

如何从java中的链表中删除对象?

我的代码有一个问题,我做了一个示例程序来显示链接列表中的emp详细信息,现在问题当我试图删除一个特定条目意味着它不起作用,我希望我在我的代码中做了一些错误你能建议怎么做吗? import java.util.*; class EmpDedup { int record; String fprint; int fid; EmpDedup(int record, String fprint, int fid) { this.record = record; this.fprint = fprint; this.fid = fid; } public int getRecord() { return record; } public String getFprint() { return fprint; } public int getFid() { return fid; } public static void main(String[] args) […]

我可以使用java.util.LinkedList构建循环/循环链表吗?

我想创建一个循环/循环链表,其中列表的尾部将指向列表的头部。 那么我可以使用java.util.LinkedList并在创建列表后修改尾节点以使其成为循环/循环吗? 如果是这样,你能告诉我一些如何发生的代码吗? 如果我不能使用java.util.LinkedList ,我应该如何创建自己的循环/循环链表实现? 你能告诉我这个实现看起来如何的骨架吗? 如果您需要更多详细信息,请告诉我,我会清除任何困惑。

如何撤消链表?

Node reverse(Node head) { Node previous = null; Node current = head; Node forward; while (current != null) { forward = current.next; current.next = previous; previous = current; current = forward; } return previous; } 究竟是如何扭转名单的呢? 我知道它首先将第二个节点设置为forward 。 然后它说current.next等于前一个null节点。 然后它说previous现在是current 。 最后current变得forward ? 我似乎无法掌握这一点以及它的逆转方式。 有人可以解释这是如何工作的?

链表上的冒泡排序实现

我必须在链接列表而不是数组上实现BubbleSort算法。 我是java的新手,所以我真的不知道怎么把它放在代码中。 但是我尝试了一下,这就是我得到的: SinglyNode.java public class SinglyNode { public Object names; public SinglyNode next; public SinglyNode (Object name1) { names = name1; } public SinglyNode (Object name2, SinglyNode next1) { names = name2; next = next1; } Object getObject() { return names; } SinglyNode getNext() { return next; } void displayLink() { System.out.print(“{” + names […]