Chapter 1.1 Collection Questions

1. Collection 和 collections 的区别

Collection 是集合类,是java中的容器。是所有单列集合的父接口。实现Collection接口的有List,Set和Queque。
Collections是工具类,为集合提供一系列静态方法。

2. List,Set, Map的区别、

List 是有序可重复集合,单列集合。特点是查询快,增删慢。
Set 是不可重复集合,单列集合。特点是查询慢,增删快。
Map 是映射,key不可重复,value可重复的,一个key只能对应一个value的双列集合。

3.HashMap和HashTable的区别

HashMap 是线程不安全的,HashTable是线程安全的。
HashMap 允许有一个key为null,HashTable不允许有key为null。

4. HashMap和TreeMap的使用区别

HashMap适合在Map中插入、删除和定位元素这类操作。HashMap添加元素更快。
TreeMap适合对一个key集合进行有序遍历的操作。

5. HashSet实现原理

HashSet底层由HashMap实现,HashSet的值放在HashMap的key上,HashMap的value一律为PRESENT。

6. HashMap实现原理

HashMap通过哈希值来存储元素。当往HashMap中添加元素时,先要判断其哈希值所在的数组的位置/下标是否存在其他元素,如果存在,则将该元素与其他元素以链表的形式存放,新加入的放在链头。 如果数组中该位置没有元素,就直接将元素放在该数组的位置上。若链表数超过八个,该链表会转为红黑树以提高查询效率。

7. ArrayList和LinkedList的区别

ArrayList数据结构是数组;LinkedList数据结构是双链表。
ArrayList查询快,增删慢;LinkedList查询慢,增删快。

8. 如何实现数组和List之间的转换

使用toArray() 将集合中的元素存储到数组。
使用asList() 将数组转化为List集合。

9.ArrayList 和Vector的区别

ArrayLisy 是多线程;Vector是单线程。
ArrayLisy 比Vector 快,vector因为有同步,不会过载。

10.Array 和ArrayList的区别

Array是数组,长度是固定的,一旦声明就不可以改变长度;
ArrayList是集合,长度是可变的。

Array可以容纳基本类型和对象;
ArrayList只能容纳对象。

Array功能没有ArrayList多。

11.哪些集合是线程安全的

  1. vector (效率低)
  2. hashtable
  3. concurrentMap
  4. synchronizedMap
  5. stack
  6. enumeration

12.Iterator是什么,怎么使用

Iterator接口是迭代器,可用于遍历迭代集合。
使用步骤

  1. 调用Iterator() 返回 iterator集合
  2. 判断集合是否还有元素:hasNext()
  3. 返回下一个元素:next()

13. TreeSet和TreeMap在排序时如何比较元素

TreeSet 要求存放的对象所属的类必须实现comparable接口且重写compareTo(),当插入元素时会回调该方法进行元素大小的比较。

TreeMap中,要求存放的键必须comparable接口且重写compareTo(),或者在构造TreeMap时传入第二个参数:自定义的comparator接口。

14. 有什么方式实现集合排序

  1. Collection.sort()
  2. TreeSet()
  3. TreeMap
  4. 存储在有序集合List里

15. 如何打印数组

Arrays.toString()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值