##1. 集合的定义
什么是集合呢?
定义:集合是一个存放对象的引用的容器。
在Java中,集合位于java.util包下。
##2. 集合和数组的区别(面试常问)
提到容器,就会想起数组,那么集合和数组的区别是什么呢?(这里是重点,面试可能问的比较多)
空口无凭,我们来点代码配合理解,首先,我们看下如下的数组代码:
1 | String[] platformArray = new String[3]; |
复制代码运行代码就会发现
platformArray[3] = “个人博客”;会引发java.lang.ArrayIndexOutOfBoundsException异常。
而使用集合时就不存在这个问题,因为集合在声明时不需要指定长度并且长度会根据放入元素的多少而变化:
1 | List<String> platformList = new ArrayList<>(); |
复制代码以下为Java的原始类型(基本数据类型)与其对应的包装类:
|原始类型|包装类|
| :——– | ——–: |
|byte |Byte|
|short|Short|
|int|Integer|
|long|Long|
|float|Float|
|double|Double|
|char|Character|
|boolean|Boolean|
##3. 集合的分类
在Java中,集合主要分为以下3种:
它们之间的继承关系可以参考下图。
从上图可以总结出如下几点:
##4. List集合
List集合包括List接口以及List接口的所有实现类。List集合具有以下特点:
我们先看下如下示例了解下List集合的用法:
1 | package collection; |
复制代码以上代码的输出结果为:
随机获取数组中的元素:a
将索引为2的元素从列表移除后,数组中的元素是:
a
b
关于List集合的详细用法,ArrayList、LinkedList、Vector的区别(这里是重点,面试可能问的比较多),后续会单独写文总结,敬请期待。
##5. Set集合
Set集合包括Set接口以及Set接口的所有实现类。Set集合具有以下特点:
我们先看下如下示例了解下Set集合的用法:
1 | package collection; |
复制代码以上代码的输出结果为:
博客园
个人博客
掘金
微信公众号
可以看出,虽然我们尝试添加了重复元素,但并没有添加成功并且输出的元素没有顺序。
因此当你的集合中不允许有重复元素并且对排序也没有要求的话,可以使用Set集合。
关于Set集合的详细用法,HashSet、LinkedHashSet、TreeSet的区别(这里是重点,面试可能问的比较多),后续会单独写文总结,敬请期待。
##6. Map集合
Map集合包括Map接口以及Map接口的所有实现类。
Map集合具有以下特点:
我们先看下如下示例了解下Map集合的用法:
1 |
|
复制代码以上代码的输出结果为: