java数据结构之列表——ArrayList,LinkedList,比较
刚看完《数据结构与算法分析java语言描述》的第3章中的表,下面回忆下主要知识点,主要说明各列表之间的关系,以及各自的优缺点。其中牵涉到内部类和嵌套类。
1 Collection API
public interface Collection<AnyType> extens Iterable<AnyType>
{
int size();
boolean isEmpty();
void clear();
boolean contains(AnyType x);
boolean add(AnyType x);
boolean remove(AnyType x);
java.util.Iterator<AnyType> iteratoe();
}
2 Iterator API
public interface Iterator<AnyType>
{
boolean hasNext();
AnyType next();
void move();
}
3 List
public interface List<AnyType> extents Collection<AnyType>
{
AnyType get(int idx);
AnyType set (int idx,AnyType newVal);
void add(int idx,AnyType x);
void remove(int idx);
ListIterator<AnyType> listIterator(int pos);
}
4 ListIterator
public interface ListIterator<AnyType> extents Iterator<AnyType>
{
boolean hasPrevious();
AnyType previous();
void add(AnyType x);
void set(AnyType newVal);
}
5 ArrayList是List的一种可增长的数组实现,优点是get和set花费常数时间,而insert和remove代价昂贵。除非是在末端进行。
6 LinkedList是List的双链表实现,优点是insert和remove开销较小,而get和set花费较大。不容易操作索引。
7 iterator的remove方法比LinkedList效率更高,因为迭代器位于需要被删除的节点附近。但是使用iterato时,list的结构不能被改变(例如insert,remove等)。
8 嵌套内常常用static放在类内部,其无法确定引用的主体;而内部类无需static声明,并且可自动确定引用的主体为其外部类。
java数据结构之列表——ArrayList,LinkedList,比较的更多相关文章
- Java——集合框架之ArrayList,LinkedList,迭代器Iterator
概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...
- java数据结构--array与ArrayList的区别
ArrayList 内部是由一个array 实现的. 如果你知道array 和 ArrayList 的相似点和不同点,就可以选择什么时候用array 或者使用ArrayList , array 提供 ...
- java类集框架(ArrayList,LinkedList,Vector区别)
主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...
- Java数据结构漫谈-ArrayList
ArrayList是一个基于数组实现的链表(List),这一点可以从源码中看出: transient Object[] elementData; // non-private to simplify ...
- Java数据结构和算法(四)赫夫曼树
Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...
- Java集合 之List(ArrayList、LinkedList、Vector、Stack)理解(new)
一. ArrayList底层实现原理 对比 和Vector不同,ArrayList中的操作不是线程安全的!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOn ...
- Java数据结构ArrayList
Java数据结构ArrayList /** * <html> * <body> * <P> Copyright JasonInternational</p&g ...
- Java Collection - ArrayList & LinkedList
总结 ref: https://blog.csdn.net/qq_32679815/article/details/78907437 1-ArrayList是实现了基于动态数组的数据结构,Linked ...
- JAVA集合一:ArrayList和LinkedList
JAVA集合一:ArrayList和LinkedList 参考链接: HOW2J.CN 前言 这几篇博客重点记录JAVA的几个重要的集合框架:ArrayList.LinkedList.HashMap. ...
随机推荐
- c#(winform)中ComboBox添加Key/Value项、获取选中项、根据Key
WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它的. 参考了一些网上的例子,最终写了一个辅助类用于方便对 ...
- Slow HTTP Denial of Service Attack
整改建议 1.中断使用URL不支持HTTP方法访问的会话 2.限制HTTP头及包长至一个合理数值 3.设置一个绝对的会话超时时间 4.服务器支持backlog的情况下,需设置一个合理的大小 5.设置一 ...
- json 解析
纠结了两天的json数组反序列化,终于在同事的帮助下,找到方法了,特作笔记如下: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Sy ...
- 51nod 1150 Logarithm
题目来源: Ural 1318 给出n个互不相等的整数A[0] - A[n-1],选A[i]同A[j]进行异或运算(结果都 > 0无符号),对结果取lg(以10为底)并取整后记为L[i,j],求 ...
- Axure RP
Axure RP是一个专业的快速原型设计工具.Axure(发音:Ack-sure),代表美国Axure公司:RP则是Rapid Prototyping(快速原型)的缩写. Axure RP是美国Axu ...
- Smartclient发布的几个异常问题
1.不能下载.config文件 如果是iis6右键网站属性--->主目录--->配置 1.右键虚拟目录,在虚拟目录-配置-映射,应用程序扩展中删除.config 项目 2.IIS属性--& ...
- CXF超时设置
转自: http://peak.iteye.com/blog/1285211 http://win.sy.blog.163.com/blog/static/9419718620131014385644 ...
- ubuntu双网卡bonding配置(转)
1.安装软件 apt-get install ifenslave 2.修改配置文件 /etc/network/interfaces auto lo iface lo inet loopback ifa ...
- Authentication token manipulation error for ubuntu ubuntu-16.04.1-desktop-amd64
https://ubuntuforums.org/showthread.php?t=1772894 Hi, I faced the same problem when I tried to recov ...
- sax,Dom,等解析方式地址 ?
Android中使用SAX对XMl文件进行解析 http://blog.csdn.net/developer_jiangqq/article/details/7197045 使用SAX技术对XML文档 ...