容器集合

容器集合

18.java 容器都有哪些?

collection集合:list queue set

map:hashmap treemap

19.Collection 和 Collections 有什么区别?

java.util.Collection是一个集合接口,提供了集合接口的各种方法

collections则是集合类的一个工具类,提供了静态方法

20.List、Set、Map 之间的区别是什么?

img

21.HashMap 和 Hashtable 有什么区别?

hashmap去掉了hashtable的contains方法,加上了containsvalue(key)方法

hashtable是同步的,hashmap是非同步的,但是效率要比hashtable高

22.如何决定使用 HashMap 还是 TreeMap?

如需要插入删除定位元素的话使用hashmap

但是如果要对一个有序的集合进行遍历的话,treemap

23.说一下 HashMap 的实现原理?

hash的数据结构:1.8以后使用红黑树

当我们往hashmap中put元素的时候,根据hashcode重新计算hash值得到这个元素的下标值,如果有元素的话就会让这个数据以链表的形式存放,新加入的放在表头,最先加入的放在表尾,如果没有的话就直接放在该位置即可

24.说一下 HashSet 的实现原理?
  • HashSet底层由HashMap实现
  • HashSet的值存放于HashMap的key上
  • HashMap的value统一为PRESENT
25.ArrayList 和 LinkedList 的区别是什么?

ArrayList:实际上是一个数组,支持随机访问

LinkedList:是一个双向链表,不支持双向访问

26.如何实现数组和 List 之间的转换?
  • List转换成为数组:调用ArrayList的toArray方法。
  • 数组转换成为List:调用Arrays的asList方法。
27.ArrayList 和 Vector 的区别是什么?

Vector是同步的,而ArrayList不是。

ArrayList比Vector快,它因为有同步,不会过载。

ArrayList更加通用,因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。

28.Array 和 ArrayList 有何区别?
  • Array可以容纳基本类型和对象,而ArrayList只能容纳对象。
  • Array是指定大小后不可变的,而ArrayList大小是可变的。
  • Array没有提供ArrayList那么多功能,比如addAll、removeAll和iterator等。
29.在 Queue 中 poll()和 remove()有什么区别?

poll() 和 remove() 都是从队列中取出一个元素,但是 poll() 在获取元素失败的时候会返回空,但是 remove() 失败的时候会抛出异常。

30.哪些集合类是线程安全的?
  • vector:就比arraylist多了个同步化机制(线程安全),因为效率较低,现在已经不太建议使用。在web应用中,特别是前台页面,往往效率(页面响应速度)是优先考虑的。
  • statck:堆栈类,先进后出。
  • hashtable:就比hashmap多了个线程安全。
  • enumeration:枚举,相当于迭代器。
31.迭代器 Iterator 是什么?

迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。

32.Iterator 怎么使用?有什么特点?

Java中的Iterator功能比较简单,并且只能单向移动:

(1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。

(2) 使用next()获得序列中的下一个元素。

(3) 使用hasNext()检查序列中是否还有元素。

(4) 使用remove()将迭代器新返回的元素删除。

Iterator是Java迭代器最简单的实现,为List设计的ListIterator具有更多的功能,它可以从两个方向遍历List,也可以从List中插入和删除元素。

33.Iterator 和 ListIterator 有什么区别?
  • Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
  • Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。
  • ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。
34.怎么确保一个集合不能被修改?

(1)通过 Collections. unmodifiableCollection(Collection c)
(2)通过Arrays.asList创建的集合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值