总结:Java集合之间的区别

1、集合中包含以下:

Collection接口:
List接口:
Set接口:
Queue接口:
Arrays数组:
Map接口:

2、Collection接口:

2-1:有以下方法:

名称作用
size()返回集合中的项数
isEmpty()判断集合是否为空
contains(Object)contains(Object)
clear()清除
add(E)从集合中添加某项
remove(Object)从集合中删除某项
iterator()遍历集合

2-2:Collection 继承 Iterable接口
2-2-1:实现iterable接口的类可以拥有增强for循环
2-2-2:集合类必须提供一个名为iterable()的方法,该方法的返回值为iterator

2-3:Iterator方法

名称作用
hashNext()是否存在下一项
next()获取下一项
remove()该方法可以生成由next()最新返回的项(注意:此后不能调用remove,直到next再一次调用以后)

2-4:Collection接口的remove()和iterator接口的remove()方法的区别?

Collection 的remove()iterator的remove()
单链表查询效率低结合next()方法使用,效率更高
会报错,ConcurremModificationException,集合对象个数改变而iterator内部对象个数不变不会报错,内部对象个数和原来集合对象个数一样
3、List接口:

特点:
可以添加重复的元素
有顺序 的

3-1: ArrayList与LinkedList 区别?

ArrayListLinkedList
数组结构链表结构
优点get和set调用花费常数时间,查询速度快新项插入和现有项插入的删除开销很小
缺点新项插入和现有项插入的删除代价昂贵,,除非是在末端进行对get和set调用昂贵
4、Set接口:

特点:
不保存重复的元素
没有顺序

4-1:HashSet:
优点:速度最快,没有明显的顺序保存元素
缺点:集合元素可以为null,但是只能放入一个null。

4-2:TreeSet:
按照比较结果的升序保存对象

4-3:LinkedHashSet:
按照被添加的顺序保存对象

4-4:HashSet、TreeSet、LinkedHashSet区别?
①:需要速度快的集合-----> HashSet
②:需要集合有排序功能 ------->TreeSet
③:需要按照插入顺序存储集合------>LinkedHashSet

5、Map接口:

5-1:HashMap:
优点:访问速度最快。无顺序保存元素

5-2:TreeMap
按照比较结果的升序保存键

5-3:LinkedHashMap:
优点:有顺序的,查询速度快(保留了HashMap的查询速度)

5-4:HashMap、TreeMap、linkedHashMap区别?
①.在Map中插入、删除和定位元素,HashMap是最好的选择
②.需要集合有排序功能,使用TreeMap更好
③.需要按照插入的顺序存储集合,使用LinkedHashMap

6、Array和ArrayList的区别?

ArralyList是Array的复杂版本

ArrayArrayList
Arrays是数组ArralyList是集合
只能存储相同数据类型存储不同数据类型
长度是固定长度是可变

6-1:关于ArrayList 容量问题

ArrayList 是实现List 接口的动态数组,即它的容量大小是可变的。允许包括null 在内的所欲元素。

每个ArrayList 实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量为10.

随着ArrayList 中元素的增加,它的容量会不端的自动增长。在每次添加新的元素时,ArrayList 都会检查是否需要进行扩容操作,扩容操作带来数据向新数组的重新拷贝。所以,如果已知业务数据量,在构造ArrayList 时可以 指定一个初始容量,这样会减少扩容时数据的拷贝问题。当然在添加大量元素前,应用程序也可以使用ensureCapacity操作来增加ArrayList实例的容量,这可以减少递增式再分配的数量。

具体可以查阅 ArrayList 的源码

ensureCapacity(),该方法就是ArrayList的扩容方法。而每次扩容的容量计算方式

       //计算新的容量大小,为当前容量的1.5倍
            int newCapacity = (oldCapacity * 3) / 2 + 1;

参考链接:http://www.cnblogs.com/chenssy/p/3498468.html

7、HashMap与HashSet区别?
HashMapHashSet
实现了Map接口实现了Set接口
存储键值对存储对象
调用put()向map中添加元素调用add()向set中添加元素
HashMap使用key计算hashcodeHashSet使用成员对象计算hashcode
HashMap相对于HashSet较快,因为它是使用唯一的键获取对象HashSet较HashMap来说比较慢
8、List、Set、Map之间的区别
ListSetMap
可以允许重复的元素不允许重复元素键值对存储,键必须唯一,但是值可以重复
可以插入多个null元素只允许一个null元素键只允许一个null,
值可以允许有多个null
有序的容器,插入的顺序和输出的顺序一样无序容器无序容器
9、Queue 通道、队列:

队列与堆栈的区别?

队列堆栈
先进先出先进后出
10:Queue、Message、Looper、Handler之间的关系

在这里插入图片描述

11、总结:

结合这张思维导图,结构一目了然!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值