刚看完《数据结构与算法分析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,比较的更多相关文章

  1. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  2. java数据结构--array与ArrayList的区别

    ArrayList 内部是由一个array 实现的. 如果你知道array 和 ArrayList 的相似点和不同点,就可以选择什么时候用array 或者使用ArrayList , array 提供 ...

  3. java类集框架(ArrayList,LinkedList,Vector区别)

    主要分两个接口:collection和Map 主要分三类:集合(set).列表(List).映射(Map)1.集合:没有重复对象,没有特定排序方式2.列表:对象按索引位置排序,可以有重复对象3.映射: ...

  4. Java数据结构漫谈-ArrayList

    ArrayList是一个基于数组实现的链表(List),这一点可以从源码中看出: transient Object[] elementData; // non-private to simplify ...

  5. Java数据结构和算法(四)赫夫曼树

    Java数据结构和算法(四)赫夫曼树 数据结构与算法目录(https://www.cnblogs.com/binarylei/p/10115867.html) 赫夫曼树又称为最优二叉树,赫夫曼树的一个 ...

  6. Java集合 之List(ArrayList、LinkedList、Vector、Stack)理解(new)

    一. ArrayList底层实现原理 对比 和Vector不同,ArrayList中的操作不是线程安全的!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOn ...

  7. Java数据结构ArrayList

    Java数据结构ArrayList /** * <html> * <body> * <P> Copyright JasonInternational</p&g ...

  8. Java Collection - ArrayList & LinkedList

    总结 ref: https://blog.csdn.net/qq_32679815/article/details/78907437 1-ArrayList是实现了基于动态数组的数据结构,Linked ...

  9. JAVA集合一:ArrayList和LinkedList

    JAVA集合一:ArrayList和LinkedList 参考链接: HOW2J.CN 前言 这几篇博客重点记录JAVA的几个重要的集合框架:ArrayList.LinkedList.HashMap. ...

随机推荐

  1. bzoj4637: 期望

    Description 在米国有一所大学,名叫万国歌剧与信息大学(UniversalOperaandInformaticasUniversity).简称UOI大学.UO I大学的建筑与道路分布很有趣, ...

  2. php常见判断

    当要 判断一个变量是否已经声明的时候 可以使用 isset 函数 当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数 当要 判断 一个变量 存在且不为空 先isset 函数 再用 e ...

  3. VisualStudio Form文件构成说明

    创建一个窗体Form1.cs 后,在他的下一级,有两个子文件: Form1.Designer.cs 和Form1.resx 这两个子文件 Form1.Designer.cs是VS自动生成用作UI的绘制 ...

  4. IOS 日志输出控制

    用以下内容可以控制在debug版本中打印日志,而在release版本中不打印 #ifdef DEBUG# define DBLog(format,...) NSLog((@"[%s][%s] ...

  5. 在Java中使用Memcached(转)

    memcache的Java客户端调用,在网上还是有些少,很多都是php的.如何要想用Java调用memcache的服务,首先要有客户端的支持,我们先下载一个客户端吧.下载地址:https://gith ...

  6. HtmlParser

    HtmlParser 基本类库使用 HtmlParser 提供了强大的类库来处理 Internet 上的网页,可以实现对网页特定内容的提取和修改.下面通过几个例子来介绍 HtmlParser 的一些使 ...

  7. OAF_VO系列3 - Binding Style绑定方式

    在OAF VO开发中,Binding Style主要用于对VO的where clause做动态传值,总共有三种方式 1.       Oracle Named 2.       Oracle Posi ...

  8. hdu 5437 Alisha’s Party 模拟 优先队列

    Problem Description Princess Alisha invites her friends to come to her birthday party. Each of her f ...

  9. PopuWindow_2

    点击一个popupwindow窗口之外的区域popupwindow消失,带来的问题!! popupwindow窗口之外的区域popupwindow消失 , 以前说过需要设置: mPopupWindow ...

  10. Guava 8-区间

    范例 List scores; Iterable belowMedian =Iterables.filter(scores,Range.lessThan(median)); ... Range val ...