Java核心技术卷一 集合类




首先,在Java中类库将接口(Interface)与实现(implementation)分离的。

所以主要的集合类中首先分成两大类

一个是实现了Collection接口的集合类其中包括三大类:

一、List  //这个集合类是有序的,可重复的容器

(Java中的链表都是双向链接的,意味着可以向后也可以向前遍历和操作,next/previous、hasNext/hasPrevious)

而在List中又分为

    LinkedList--双向链表,可以快速在中间添加,插入,删除推荐使用add,remove。

    ArrayList--使用循环数组实现的队列,在进行随机访问的时候可以选择它或者是数组,推荐使用get( ),和set( )。

二、Set  //add拒绝重复元素

其中含有hashSet,是基于散列表的集,遍历时元素出现的顺序并不是固定的。

还有TreeSet,这是一个有序集合,而且这个排序使用树排序(红黑树)进行的。

三、Queue  //这是队列

有Queue和LinkedList都是双端队列。

还有优先队列priority queue,使用的是堆排序来进行其中元素的排序,并且remove这些方法都是按照其中的元素顺序执行

其中接口有两个基本方法(还有其他,咱不提)

四、stack 栈结构

一、boolean add(E element)

  这是往实现了Collention接口的集合类中添加元素,一旦添加成功则返回true。

二、Iterator<T> iterator()

  这是迭代器,实现了Collention接口的集合类中会提供一个迭代器,来让你可以方便的遍历集合中的元素。

  同时这个也是接口Iterable中需要实现的方法。只要实现了这个方法,就可以用for(E element: e)来遍历实现了这个方法的集合。这个for循环默认的使用迭代器来为我们遍历其中的所有元素。

  另外还有一个Iterator的接口,其中就有提供给我们对集合中的元素进行操作的方法

E next()、boolean hasNext()、void remove()

迭代器是类似于指向集合中逻辑位置相邻两个对象之间的位置,无论你使用(正向遍历,从第一个元素到最后一个)add,next,remove,他都是最迭代器所指的地方上一个对象。

  而且这三个方法互相有关联。在遍历下一个元素时(使用next())时,必须要先对是否存在下一个元素进行判断,否则当已经遍历到最后一个元素并且再次进行next时就会出现Exception。而当使用remove时,必须要使用next。由于我们知道迭代器指向的是对象之间并且进行上一个对象的操作,若是一开始就进行remove操作,万一迭代器在指向第一个元素之前那么就会出现对不存在的元素进行remove操作。所以即使是逻辑之间相邻的元素进行删除,也不能连续使用remove操作。

 

  另一个是实现了Map接口的集合类

  Map(映射表)主要是用于键值对(Key-value)的存储集合类,键key一般是以字符串为准

,其中有hashMap(根据键的内容进行hash(散列)且键必须唯一,不对值进行散列。),和TreeMap。还有个WeakHashMap,他的作用是当对键的唯一引用来自散列表条目时,这一数据结构会与垃圾回收机制协同工作删除键/值对

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 Java集合框架由Java类库的一系列接口、抽象类以及具体实现类组成。我们这里所说的集合就是把一组对象组织到...
    absfree阅读 1,292评论 0 10
  • Collection ├List │├LinkedList │├ArrayList │└Vector │└Stac...
    AndyZX阅读 898评论 0 1
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,532评论 0 3
  • 1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:V...
    胖先森阅读 815评论 4 17
  • 文/玥姝 01.衬衣 衬衣兼具中性、干练、素净和优雅的风格。 对于我们大学生,推荐格子衬衣或带有图案的衬衣,这样更...
    玥姝阅读 2,366评论 10 59