话不多说,直接上图: Java 集合,也称作容器,主要是由 两大接口 (Interface) 派生出来的: Collection 和 Map 顾名思义,容器就是用来存放数据的。 那么这两大接口的不同之处在于: Col
话不多说,直接上图:
Java 集合,也称作容器,主要是由两大接口 (Interface)
派生出来的:Collection 和 Map
顾名思义,容器就是用来存放数据的。
那么这两大接口的不同之处在于:
Collection 存放单一元素; Map 存放 key-value 键值对。
就是单身狗放 Collection 里面,couple 就放 Map 里。(所以你属于哪里?
学习这些集合框架,我认为有 4 个目标:
明确每个接口和类的对应关系; 对每个接口和类,熟悉常用的 API; 对不同的场景,能够选择合适的数据结构并分析优缺点; 学习源码的设计,面试要会答啊。
关于 Map,之前那篇 HashMap 的文章已经讲的非常透彻详尽了,所以本文不再赘述。如果还没看过那篇文章的小伙伴,快去公众号内回复「HashMap」看文章吧~
Collection先来看最上层的 Collection.
Collection 里还定义了很多方法,这些方法也都会继承到各个子接口和实现类里,而这些 API 的使用也是日常工作和面试常见常考的,所以我们先来看下这些方法。
操作集合,无非就是「增删改查」四大类,也叫 CRUD
:
Create, Read, Update, and Delete.
那我也把这些 API 分为这四大类:
下面具体来看:
增:boolean add(E e);
add()
方法传入的数据类型必须是 Object,所以当写入基本数据类型的时候,会做自动装箱 auto-boxing 和自动拆箱 unboxing。
还有另外一个方法 addAll()
,可以把另一个集合里的元素加到此集合中。
boolean addAll(Collection<? extends E> c);删:
boolean remove(Object o);
remove()
是删除的指定元素。
那和 addAll()
对应的,
自然就有removeAll()
,就是把集合 B 中的所有元素都删掉。
boolean removeAll(Collection<?> c);改:
Collection Interface 里并没有直接改元素的操作,反正删和增就可以完成改了嘛!
查:查下集合中有没有某个特定的元素:
boolean contains(Object o);
查集合 A 是否包含了集合 B:
boolean containsAll(Collection<?> c);还有一些对集合整体的操作:
判断集合是否为空:
boolean isEmpty();
集合的大小:
int size();
把集合转成数组:
Object[] toArray();
【出处:响水网页开发公司 http://www.1234xp.com/xiangshui.html 欢迎留下您的宝贵建议】