集合类面试题

详解可以看这里:https://blog.csdn.net/feiyanaffection/article/details/81394745

map集合

添加方法:map.put(key,value);

根据建删除元素:map.remove("key");

判断是否包含传入的建:map.containskey("key"); 

判断是否包含传入的值:map.containsvalue(value); 

判断集合是否为空:map.isempty();

返回集合中键值对的个数:map.size();

获取到map集合里所有建的集合:map.keyset();

map集合迭代(双列集合)

fangfa通过map.keyset()获取到集合中所有建的集合保存到set集合中,然后通过迭代器或者增强for循环获取到map集合中键对应的值( map.get(key)根据键获取值)

通过map的内部接口Entry将map集合中的键值封装成了Entry对象,并存储在Set集合中【map.entrySet()】,然后通过迭代器或者增强for循环获取到对应的键值。

HashMap判断map集合中是否存在指定的key/value。

(map.containsKey("第二个")) //判断map集合中是否存在指定的key

map.containsValue(1)) //判断map集合中是否存在指定的Value

list集合:并发修改异常

解决方案:可以用list中特有的迭代器ListIterator中的add方法解决。

ArrayList中去重

1.创建一个新的集合,然后通过迭代器遍历老集合和新集合进行对比,如果新集合中不包含老集合的元素就将其添加至新集合中。(newlist.contains(list))

2.直接将list集合转换为set集合即可,因为set集合是唯一的。

数组转集合:aslist();

集合转数组:toArray();

ArrayList底层是数组查询快,增删慢,线程不安全,效率高,可以存储重复元素、LinkedList底层是链表查询慢,增删快,线程不安全,效率高,可以存储重复元素。

Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,可以存储重复元素

集合和数组的区别

数组长度是固定的,集合的长度是可变的

数组中可以存储基本数据类型和引用数据类型,集合只能存储引用数据类型

 

 

posted @ 2021-03-26 16:32  一块  阅读(85)  评论(0编辑  收藏  举报