Arrylist 与 Linkedlist 的区别

简介: Arrylist 与 Linkedlist 的区别

1.Arrylist和LinkedLIst低层代码的不同

Arrylist低层是由数组所实现的,且ArryList类是一个可以动态修改数组,但是他与普通数组的区别在于没有固定大小的限制。

LinkedList低层则是由链表构成,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。

2.Arrylist和LinkedList的优化

ArryList 因为是动态数组所以每个元素都有下表当进行查询和修改时速度要比LIkedList要快,但是同时删除和增加要比LikedLlist要慢。

private static class Node<E> {
    E item;
    Node<E> next;
    Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
    this.item = element;
    this.next = next;
    this.prev = prev;
}
}

其中Likedlist中定义了一个Node结构,其中Node结构又包括

元素内容 item、前指针prev以及后指针next。

ArryList的遍历则是

public E get(int index) {
    rangeCheck(index);
    return elementData(index);
}
E elementData(int index) {
    return (E) elementData[index];
}

若想将这个LIkeList有序化可以使用这个代码

likedList的属性名为:ll
写一个名为pop的方法
public string pop(){
 return ll.removeLast();
}
在likedList类中调用pop方法即可

至于Arrylist与其说是优化ArryList不如说是增长因子论证

我们在用到Arrylist时在后<>后面的括号内定值使它的数据超过100时才会增长这样在存储数据时效率要比不定要快,同时我们要来了解到Arrylist的增长因子是数组像在的长度的1.5倍

ArryList<>() list=new Arrylist<>(100)

3.如何去重

Arrylist list=new ArryList();
Arrylist list=new ArryList();
if(!list.contains(n)){
list.add(n);
}

在上列代码中若n为对象便要在对象中去重写equals方法即可


相关文章
|
11天前
|
存储 Java 容器
【JAVA集合篇 - LinkedList】你真的了解LinkedList吗?
【JAVA集合篇 - LinkedList】你真的了解LinkedList吗?
8 0
|
2月前
|
存储 算法 安全
Java集合篇之深入解析LinkedList
Java集合篇之深入解析LinkedList
16 1
|
9月前
|
存储 Java 索引
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
每日一道面试题之ArrayList 和 LinkedList 的区别是什么?
|
12月前
|
安全
ArrayList 和 LinkedList 的区别【重要】
ArrayList 和 LinkedList 的区别【重要】
50 0
|
2月前
|
存储 安全
ArrayList 和 LinkedList 的区别
ArrayList 和 LinkedList 的区别
|
2月前
面试题之:ArrayList和LinkedList有哪些区别
面试题之:ArrayList和LinkedList有哪些区别
|
2月前
|
存储 Java 索引
Java集合框架:ArrayList和LinkedList的区别是什么?
Java集合框架:ArrayList和LinkedList的区别是什么?
29 0
|
10月前
|
存储 容器
集合框架之ArrayList和LinkedList的区别
集合框架之ArrayList和LinkedList的区别
44 0
|
存储 索引
ArrayList与LinkedList区别源码分析
1、ArrayList是基于数组,LinkedList是基于链表 2、基于数组的ArrayList对于根据索引值查找比较高效;基于链表的LinkedList对于增加、删除操作比较高效 3、剖析CRUD:
197 0
|
存储 缓存 安全
说一下 ArrayDeque 和 LinkedList 的区别?
在上一篇文章里,我们聊到了基于链表的 Queue 和 Stack 实现 —— LinkedList。那么 Java 中有没有基于数组的 Queue 和 Stack 实现呢?今天我们就来聊聊这个话题。
217 0