正如我所知,ArrayList以2^n+1的大小复制数组。而linkedlist只更改节点
class Test1 {
public static void main(String[] args) {
ArrayList<Integer> arrayList = new ArrayList<>();
LinkedList<Integer> linkedList = new LinkedList<>();
addToList(arrayList);
System.out.println("-----------------");
addToList(linkedList);
}
public static void addToList(List list) {
long start = System.currentTimeMillis();
for (int i = 0; i < 5_000_000; i++) {
list.add(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
当添加到ArrayList
时,只需将整数存储在支持数组中。每隔一段时间,当支持数组填满时,您必须分配一个新数组,并将所有旧项复制到新数组中。给定500万个整数,您将不得不进行大约20次分配和复制(取决于列表的初始大小)。
若要添加到链表中,每次添加都需要:
我的问题在我的main方法中,如何向链表中添加多个节点....我现在先从节点2和节点3开始..我以为我添加了这些节点,但是我意识到我并没有对这些节点和它们的值做任何事情,对吗?如何使用setData()和setNext()来添加所有这些节点?这有意义吗? 如果上面设置了值,如何将它们全部添加? 然后,我需要为每一项设置数据和下一步吗?(这似乎是多余的,因为我似乎在上面的构造函数中设置了每个节点的值
公共类插入节点{ } 您好,代码在LinkedList add head和add last的实现之上。但是,当我运行代码时,我可以添加新节点作为链表上的最后一个节点,但我不能将新节点添加到链表的请求中。 运行此代码时,输出为: 加数法有效,但为什么不加前置呢?
问题内容: 在我的表我有,列。 示例:和 如何将此列添加到我的列中,这样我就可以 我尝试了这个: 但它不起作用。 谢谢你,史蒂夫 问题答案: 据我了解,您想将前两位数字添加为小时,将后两位数字添加为分钟-但您并未在通话中执行此操作- 您要将两个部分都添加为-请尝试以下操作: 在这里,我使用了两个嵌套-内部添加小时,外部添加分钟到添加小时的结果上。 另外:在SQL Server中是 基于1的 ,例如
我正在尝试在单链表的末尾插入一个新节点。但编译后我一直得到NullPointerException。 下面是Node类。 下面是单个LL类 方法addFirst()起作用。当我试图通过addLast()创建LL时,会出现NullPointerException。我认为一定有问题,但我想不出来。
我正在尝试在单个链表的末尾插入一个新节点。但是我在编译后不断得到空点例外。 下面是节点类。 这里是单个LL类 addFirst()方法有效。当我试图通过addLast()创建一个LL时,出现了NullPointerException。我想< code > if(size = = 0){ head = new node;一定有什么问题;},但是我想不通。
问题内容: 我在此之前的一篇帖子中写道: 对于LinkedList 得到的是O(n) 加为O(1) 删除为O(n) Iterator.remove为O(1) 对于ArrayList 得到的是O(1) add为O(1)摊销,但O(n)为最差情况,因为必须调整数组大小并复制 删除为O(n) 因此,通过查看此内容,我得出的结论是,如果只对我的集合中的序列插入(比如说5000000个元素),它将超出类别。