集合框架总结

2019-02-28  本文已影响0人  cpyl

Java的主要容器:


一、AraryList和Vector的区别

共同点
这两个类都实现了List接口,它们是有序的集合。底层的数据结构是数组,都可以根据索引实现随机查询,并且速度快,插入删除由于要移动元素,所以速度慢。允许元素为null
不同点

二、HashMap和Hashtable的区别

相同点:都是实现了Map接口,底层是哈希表+红黑树
不同点

三、 List和Map的区别

相同点:都是一种容器,可以储存元素(...)
不同点

四、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()?

添加元素的时候,如果key(也对应的Set集合的元素)相等,那么则修改value值。而在Set集合中,value值仅仅是一个Object对象罢了(该对象对Set本身而言是无用的)。在put中两个方法都要用

五、Collections和Collection的区别

六、说出ArrayList,LinkedList的存储性能和特性:

ArrayList底层是数组,LinkedList底层是双向链表

七、 ListListIterator有什么特点

八、什么是并发集合类

ava1.5并发包(java.util.concurrent)包含线程安全集合类,允许在迭代时修改集合

十、Java中HashMap的key值要是为类对象则该类需要满足什么条件?

需要重写HashCode()和equals()方法
在调用put方法时,首先计算key的hash值(HashCode()),如果算的两个key的hash值相等是放到同一个桶上的。

在Object中的equals()默认是比较对象的地址的,我们认为如果两个对象的成员变量一样就说它们是相等,所以要重写equal()。又因为equals()认定两个对象相等,他们的hashcode也一定一样,所以也要重写hashCode()

十一、ArrayList中加入大量的数据,应该如何减小消耗

进行大数据量的插入时,ArrayList底层的动态数组频繁进行也会消耗大量的资源。因此可以在初始化时指定容量。也可以手动调用ensureCapacity(int minCapacity)进行扩容

十二、确定使用该集合类型下的哪个子类

上一篇 下一篇

猜你喜欢

热点阅读