面试题-Java基础(二)- 容器

1、Java容器的结构 答案

2、collection和collections的区别?

  • collection:是一个集合接口,是顶级集合接口。提供对集合对象基本操作的通用接口方法:size(),isEmpty(),clear(),add(),addAll()。
  • collections:是一个集合类的工具类,提供了一些静态方法,对集合进行排序,搜索以及线程安全等操作。

3、List,set,Map之间的区别?   答案

4、HashMap和HashTable之间的区别 ?

  • HashMap去掉了HashTable的contain()方法,但加上了containValue和containkey方法
  • HashMap是线程不安全的,hashTable是线程安全的。面试相关问题:hashTable是怎么实现线程安全的?
  • HashMap允许null值,而hashTable不允许。

5、HashMap和TreeMap之间的选择 ? 

对于map中的插入,删除,定位元素这类的操作,HashMap是最好的选择,加入你需要对一个有序的key集合进行遍历,那么TreeMap可以实现需求。

6、HashMap的实现原理
hashMap底层是哈希表
hashMap在JDK1.8前后的实现方式有所不同,1.8以前是数组加链表,1.8以后是数组加链表加红黑树。在哈希冲突多的时候,红黑树可以将查询的时间复杂度从n降到logn。
hashMap的扩容机制。

7、HashSet的底层实现
hashSet的底层是hashMap,hashSet将值放在HashMap的key上。

8、ArrayList和LinkedList的区别? 答案

9、List和数组之间的转换

  • list转成数组,ArrayList.toArray();
  • 数组转成list,Arrays.asList();

10、Array和ArrayList之间的区别?答案

11、Queue中的poll() 和 remove() 的区别是什么?

二者都是从队列中取出一个元素,poll获取元素失败后会返回空,但remove如果失败了就会抛异常。

12、哪些结合类是线程安全的
vector,stack,hashTable

13、迭代器Iterator是什么?
迭代器是一种设计模式,它是一个对象,他可以遍历并选择序列中的对象,而且开发员不需要了解该序列的底层结构。

14、Iterator怎么使用?有什么特点?
Java中的Iterator功能比较简单,并且只能单向移动。

  • 使用Iterator()要求容器返回一个迭代器。第一次调用Iterator的next()方法,他返回的是序列的第一个元素。
  • 使用next()获取下一个元素
  • 使用hasNext()检查序列是否还有元素
  • 使用remove()将迭代器返回的元素删除

可以使用迭代器对list进行删除

15、Iterator和ListIterator有什么区别?

  • Iterator可以用来遍历set和list,而ListIterator只可以遍历list
  • Iterator只可以前向遍历,而ListIterator可以双向遍历
  • ListIterator实现了Iterator接口,并包含Iterator所有的其他功能

下一节-多线程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值