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