Java ArrayList,LinkedList使用
1、ArrayList底层采用数组实现,当使用不带参数的构造方法生成ArrayList对象时,实际上回在底层生成一个长度为10的Object类型数组。
2、如果增加的元素个数超过10个,那么ArrayList底层会将数组长度扩大到原数组的1.5倍。
3、对ArrayList元素的删除操作,需要将被删除元素的后续元素向前移动,代价比较高。
4、关于ArrayList与LinkedList的比较分析
a) ArrayList底层采用数组实现,LinkedList底层采用双向链表实现
b)当执行插入或删除操作是,采用LinkedList比较好。
c)当执行搜索操作时,采用ArrayList比较好。
5、当向ArrayList添加一个对象时,实际上就是将该对象放置到了ArrayList底层所维护的数组当中; 当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:
Entry{
Entry previous;
Object element;
Entry next;
}
其中的Object类型的元素element就是我们向LinkedList中所添加的元素,然后Entry又构造好了向前与向后的引用previous、next,最后将生成的这个Entry对象加入到了链表当中。换句话说,LinkedList中所维护的是一个个Entry对象。
6、使用LinkedList实现队列Queue
public class MyQueue {
private LinkedList list = new LinkedList();
public void put(Object obj){
list.add(obj);
}
public Object get(){
return list.removeFirst();
}
public boolean isEmpty(){
return list.isEmpty();
}
public static void main(String[] args) {
MyQueue myQueue = new MyQueue();
myQueue.put("one");
myQueue.put("two");
myQueue.put("three");
System.out.println(myQueue.get());
System.out.println(myQueue.get());
System.out.println(myQueue.get());
System.out.println(myQueue.isEmpty());
}
}
打印结果

Java ArrayList,LinkedList使用的更多相关文章
- Java ArrayList、Vector和LinkedList等的差别与用法(转)
Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...
- java.util.ArrayList、java.util.vector和java.util.LinkedList (JDK 1.8.0_111)
一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable, ...
- [Java]ArrayList、LinkedList、Vector、Stack的比较
一.介绍 先回顾一下List的框架图 由图中的继承关系,可以知道,ArrayList.LinkedList.Vector.Stack都是List的四个实现类. AbstractList是一个抽象类,它 ...
- Java集合--ArrayList,LinkedList性能分析
转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308900.html 第1部分 List概括 先回顾一下List的框架图 (01) List 是一个接口 ...
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- 浅谈Java中linkedlist和arraylist区别
在Java中,关于集合框架有这样一个体系结构: 其主要由两个接口派生而出:Collection和Map,然后再衍生出各自的一些实现类(比如Collection接口又被继承与Set和List接口,而他们 ...
- Java ArrayList和LinkedList
目录 集合的概念 集合体系结构 常用list集合 list集合的特点 ArrayList LinkedList 创建对象 常用方法 遍历 ArrayList和LinkedList的区别 集合的概念 ...
- java.util.ArrayList,java.util.LinkedList,java.util.Vector的区别,使用场合.
下图是Collection的类继承图 从图中可以看出:Vector.ArrayList.LinkedList这三者都实现了List 接口.所有使用方式也很相似,主要区别在于实现方式的不同,所以对不同的 ...
- java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?
Vector,ArrayList,LinkedList均为线性的数据结构,但是从现实方式与应用场景中又存在差别. 1 底层实现方式 ArrayList内部数组来实现,LinkedList内部采用双向链 ...
- Java Collection - ArrayList & LinkedList
总结 ref: https://blog.csdn.net/qq_32679815/article/details/78907437 1-ArrayList是实现了基于动态数组的数据结构,Linked ...
随机推荐
- Docker -compose install Harbor
Docker-compose Harbor install Docker install Yum install docker-compose 首先安装 yum configuation 管理工具 [ ...
- Android笔记(四十三) Android中的数据存储——SQLite(五)delete
SQLite通过delete()方法删除数据 delete()方法参数说明: delete()方法参数 对应sql部分 描述 table delte from table_name 要删除的表 whe ...
- Linux系统运维相关的面试题 (问答题)
这里给大家整理了一些Linux系统运维相关的面试题,有些问题没有标准答案,希望要去参加Linux运维面试的朋友,可以先思考下这些问题. 一.Linux操作系统知识 1.常见的Linux发行版本都有 ...
- homebrew一直处于updating状态
vim ~/.bash_profile 增加一行 export HOMEBREW_NO_AUTO_UPDATE=true 之后再source一下
- node绑定域名 nginx篇
创建nodejs文件,并测试执行有没有问题. var express = require('express'); var app = express(); app.get('/', function ...
- mysql 数据库的时间与字符串转换
.当前日期.时间 now() 获取 当前日期和时间 :: curdate() 当前日期, curtime() 当前时间 :: current_time() : //同curtime(),current ...
- HTTP和HTTPS的区别和常见的面试题
本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POS ...
- AHOI2013 差异 和 BZOJ3879 SvT
差异 题目描述 给定一个长度为 $n$ 的字符串 $S$,令 $T_i$ 表示它从第 $i$ 个字符开始的后缀.求 $\displaystyle \sum_{1\leqslant i<j\leq ...
- Burp Suite的代理Brup Proxy的使用详解
Burp Proxy 是Burp Suite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截.查看.修改所有在客户端和服务端之间传输的数据.
- 四大网络之Alexnet
本文主要介绍AlextNet的一些知识,这些知识经常被忽略 一.AlextNet的创新点 (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Si ...