集合的白话讲解

【传智播客.黑马程序员训练营成都中心】

本文章作为集合的入门讲解,通俗易懂,很适合Java零基础的朋友们阅读。

Java中的集合到底是什么,该怎么使用,这些问题时常困扰着初学Java语言的朋友,殊不知其实集合是非常简单的一个小知识,朋友们在学习集合的时候,能把下列的三点弄明白,就可以入门了,接下来咱们就快速学习一下集合吧。

  • 1、什么是集合
    Java中的集合到底是什么呢?其实很多人在学完整个Java基础的时候都没有搞清楚,认为集合就是一个集合,就是一个Java中的基础知识,一个Java中的专业术语。确实,集合是一个Java语言中的专业术语,但是如果大家按照这个概念去学习的话,学起来会很困哪,并且难以攻破它。
    不知道朋友们对Java世界了解多少,说到Java世界,咱们先来了解一下咱们所生活的现实世界,正如我之前写的关于面向对象的文章一样,其实Java源于生活,生活映射Java。在我们现实生活中,大家想一个问题,如果我们的生活用品很多,多到有的时候可能找不到一些想要的东西的时候,该怎么办?你平时的物品比如牙刷会放到哪里,衣服会收到哪里,袜子会放到哪里,年轻时候写的情书和收到的情书会放到哪里?其实这个问题很好回答,有的朋友会说,牙刷会放到杯子中,衣服会收到衣柜中。一些袜子,小件会收到箱子中。没错,回答的很好。细心的朋友们会发现,我其实这么问是在强调一个东西,这个东西就是具有储存功能的箱子,衣柜等,那我们可以把这些具备存储功能的东西合在一起称为容器。
    朋友们可以好好想一想,在我们的生活中,这些容器是不是随处可见,而且对于我们的生活来说是必不可少的,如果在这个世界上没有容器的话,相信我们都没法好好生存了吧。那映射到Java世界中的话也是一样的,在Java中,如果没有容器存在的话,也是不好过的,比如说在Java中,需要很多很多的数据,但是数据多了,就不方便去管理,更不方便去操作这些数据,很乱很麻烦。但是如果Java中一旦有了容器这种东西,那是不是会变得很方便了。
    说到这里,咱们回归正题,那到底什么是集合呢?其实,集合就是容器,只不过在Java中容器有很多,如果有学过数组的朋友,那就应该知道,数组也是一个容器,但是这两个容器的特点都不一样。就好比一个实验室,有很多很多的玻璃瓶,可是每一种玻璃瓶的样子和特点也不一样。再或者说,衣柜和书柜也都是容器,那特点也不一样。所以集合容器和数组容器的特点就不一样了,在Java中针对不同的需求,也给我们提供了不同的容器让我们选择使用。
    那集合这个容器的特点是什么样子呢?集合容器比较有意思,它可以装东西,而且是可以装各种不一样的东西,比如说可以往里面装水,可以装糖果,也可以装各种小吃,任何类型的东西集合都可以装,而且它就像是一个魔法箱子一样,长度永无止境的在改变,你往集合容器里面装多少东西,它就可以存储多少东西,你不需要考虑它什么时候能够装满,因为它永远都装不满。

  • 2、怎么写一个集合
    刚才大家也都大概的清楚的知道了,其实Java中的集合就是所谓的容器,和我们现实生活中的容器是一样的东西。我们什么时候需要使用集合容器呢,很简单,当我们想要将众多的数据好好的管理起来的时候,我们就需要集合容器将这些众多的数据存储起来,方便去使用。在使用集合容器之前,首先我们要知道Java中集合的分类有哪些,大体上有以下划分:
    单列集合:
    Collection
    --List
    --ArrayList
    --LinkedList
    --Vector
    --Set
    --HashSet
    --LinkedHashSet
    --TreeSet
    双列集合:
    Map
    --HashMap
    --TreeMap
    --LinkedHashMap
    大致的如上所示,不过这也只是简单的列举出几个朋友们可能会常用的一些,还有很多集合容器类型没有说。本文章只使用ArrayList这个集合容器来进行举例。那集合容器怎么在我们Java中是怎么创建出来的呢?
    /*
    创建出一个集合容器需要格式:
    集合容器的类型 集合容器的名字 = new 集合容器的类型();
    由于我们选择举例的是ArrayList这个集合容器,所以创建如下
    */
    ArrayList al = new ArrayList();

  • 3.怎么使用一个集合
    在我们现实生活中,其实使用容器无非就是往容器里面装东西,或者将东西从容器中拿出来,在Java中也是如此,当一个集合容器存在的时候,我们就需要向容器里面存储一点东西了,这些东西在Java中就是各种数据,怎么存呢?咱们来看一下。
    /*
    向集合容器中装东西,要使用集合类中的装东西的方法,叫做add()
    */
    al.add("字符串1");
    al.add("字符串2");
    al.add("字符串3");
    al.add("字符串4");

    /*
      我们向集合容器中装了4个字符串数据,那到底装没装进去呢,咱们得来看一下,怎么看呢,打印一下容器的名字即可。
    */
    System.out.println(al);
    

    那我们怎么能拿到集合容器中的东西呢?咱们来看一下。
    /*
    想要获取集合容器中的东西,要使用get(),通过传递索引,就可以获取到。
    */
    String s1 = al.get(0);
    System.out.println(s1);
    String s2 = al.get(1);
    System.out.println(s2);
    String s3 = al.get(2);
    System.out.println(s3);
    String s4 = al.get(3);
    System.out.println(s4);

    /*
      通过以上的方式是完全可以取出容器中的东西,但是对于咱们这么懒的人,会感觉到麻烦,那就换一种简单的方式就可以获取一个集合容器中所有的东西的方法。
    */
    for(int i = 0; i < al.size(); i++) {//al.size的作用是得到容器中装了多少个东西的个数。
      String s = al.get(i);
      System.out.println(s);
    }
    
    /*
      获取集合容器中的方法当然不只一两种,接下来咱们再来看看使用集合中的迭代器来获取东西。
    
      迭代器:这里面还要给朋友们简单的介绍一下什么是迭代器,所谓的迭代器大家听起来其实是比较抽象的,而且是难以理解的,咱们不妨用生活中的例子来说明一下。不知道朋友们有没有去过电玩城,有没有玩过娃娃机给女朋友抓娃娃的经历,如果没有的话那实在可惜,应该去体验一番。娃娃机就好比集合容器,娃娃机里的娃娃就好比数据,将娃娃存储到了娃娃机中,当我们想要获取娃娃机里的某个娃娃的时候,就需要拿出来,但是我们不是直接用手获取,而是用娃娃机里面的那个钩子,那个钩子就相当于迭代器,迭代器就是帮助我们获取集合容器中的数据的,这么举例相信朋友们多少大概了解了迭代器是干什么用的了吧。迭代器这个东西朋友们也只需要了解一下即可。
    */
    Iterator it = al.iterator();//al.iterator()是获取迭代器对象的方法
    while(it.hasNext()) {//it.hasNext()是判断下一个是否还有东西的方法
      String s = (String)it.next();//it.next()是获取集合容器中的东西的方法
      System.out.println(s);
    }
    

    如果朋友们能把以上的内容掌握的话,那就算是集合入门成功了,剩下的其实只是针对一些关于集合的练习题,朋友们自己多练习练习就可以了。

以上内容就是本章要给大家讲解的知识点,内容不多,但是精辟,可以帮助大家尤其是零基础的朋友们学好Java基础中的集合,最后祝愿每一位学习Java的朋友们马到成功,更上一层楼。

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

推荐阅读更多精彩内容