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,他的作用是当对键的唯一引用来自散列表条目时,这一数据结构会与垃圾回收机制协同工作删除键/值对

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

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