Java集合
1. 集合的由来
通常情况下,程序直到运行时,才知道需要创建多少个对象。但在开发阶段,我们根本不知道到底需要多少个数量的对象,甚至不知道它的准确类型。为了满足这些常规的编程需要,我们要求能在任何时候,任何地点创建任意数量的对象,而这些对象用什么来容纳呢?我们首先想到了数组,但是数组只能放统一类型的数据,而且其长度是固定的,那该怎么办呢?集合便应运而生了!Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。
2. 集合的概念
Java集合类,存放于 java.util 包中,是一个用来存放对象的容器。
① 集合只能存放对象。比如你存一个 int 型数据1放入集合中,其实它是自动转换成 Integer 类后存入的,Java中每一种基本类型都有对应的引用类型。
② 集合存放的是对象的引用,对象本身还是放在堆内存中。
③ 集合可以存放不同类型、不限数量的对象。
④ 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。(解决方案:使用泛型)
3. 集合的框架
阅读Java集合框架图,不难发现:
① 所有的集合类(除Map系列)都实现了 Iterator 接口。 Iterator 接口定义了遍历集合元素的方法,主要是 hasNext(),next(),remove()三种方法。它的子接口 ListIterator 在它的基础上又添加三种方法,分别是 add(),previous(),hasPrevious()。也就是说如果实现 Iterator 接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会再被遍历到,通常无序集合实现的都是这个接口,比如HashSet;而那些元素有序的集合,实现的一般都是 ListIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如ArrayList。
② 抽象类的意义。如果要自己实现一个集合类,去实现那些抽象的接口会非常麻烦,工作量很大。这个时候就可以使用抽象类,这些抽象类中给我们提供了许多现成的实现,我们只需要根据自己的需求重写一些方法或者添加一些方法就可以实现自己需要的集合类,工作量大大降低。
③ 用于学习背诵的集合框架图
4. 集合的详解
参考:
https://www.cnblogs.com/ysocean/p/6555373.html
原文地址:https://www.cnblogs.com/yadiel-cc/p/11135543.html