1.ArrayList和LinkList的描述,下面说法错误的是:D
- A.LinkedeList和ArrayList都实现了List接口
- B.ArrayList是可改变大小的数组,而LinkedList是双向链接串列
- C.LinkedList不支持高效的随机元素访问
- D.在LinkedList的中间插入或删除一个元素意味着这个列表中剩余的元素都会被移动;而在ArrayList的中间插入或删除一个元素的开销是固定的
2.ArrayLists和LinkedList的区别,下述说法正确的有?(多选)BC
- ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
- 对于随机访问get和set,ArrayList绝对优于LinkedList,因为LinkedList要迭代器。
- 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
- 对于新增和删除操作add和remove,LinkedList比较占优势,因为ArrayList要移动数据。
3.下面有关java hashmap的说法错误的是? C
- HashMap 的实例有两个参数影响其性能:“初始容量” 和 “加载因子”。
- HashMap 的实现不是同步的,意味着它不是线程安全的
-
HashMap通过开放地址法解决哈希冲突
- HashMap中的key-value都是存储在Entry数组中的
4.list是一个ArrayList的对象,哪个选项的代码填到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的象?(a)
Iterator it = list.iterator();
int index = 0;
while (it.hasNext())
{
Object obj = it.next();
if (needDelete(obj)) //needDelete返回boolean,决定是否要删除
{
//todo delete
}
index ++;
}
- it.remove();
- list.remove(obj);
- list.remove(index);
- list.remove(obj,index);