集合

集合框架

 

Collection接口

它是集合的顶级接口,分为List接口,Set接口,Queue接口

List接口特点:有序,元素可重复

Set接口特点:无序,元素不可重复

Queue接口特点:先进先出

 

 

Map接口特点:无序,以键/值对形式添加元素,键不能重复,值可重复

 

 

ArrayList和LinkList的区别?

ArrayList(数组结构): 查询快,默认容量10,每次递增:当前容量*3/2+1

LinkedList(链表结构):增删快

 

 

 

 

Collection接口的remove()方法和Iterator接口的remove()方法区别?

①性能方面

Collection的remove方法必须首先找出要被删除的项,查询效率低,需要从集合中一个一个遍历才能找到该对象;

     Iterator的remove方法结合next()方法使用,比如集合中每隔一项删除一项,效率更高

 

②容错方面

在使用Iterator遍历时,如果使用Collection的remove则会报异常

    在使用Iterator遍历时,不会报错,因为iterator内部的对象个数和原来集合中对象的个数会保持一致

 

 

 

Array与ArrayList有什么区别?

①.ArrayList是Array的复杂版本

②.存储的数据类型:Array只能存储相同数据类型的数据,而ArrayList可以存储不同数据类型的数据

③.长度的可变:Array的长度是固定的,而ArrayList的长度是可变的

 

 

 

 

 

4.怎样将一个数组转成List,有什么方法?

数组转list:可以使用Arrays.asList(数组)

List转数组:使用list.toArray()

 

 

 

 

 

5.HashSet、TreeSet、LinkedHashSet区别?

①.需要速度快的集合,使用HashSet

②.需要集合有排序功能,使用TreeSet

③.需要按照插入的顺序存储集合,使用LinkedHashSet

 

 

 

HashMap、TreeMap、linkedHashMap区别?

①.在Map中插入、删除和定位元素,HashMap是最好的选择

②.需要集合有排序功能,使用TreeMap更好

③.需要按照插入的顺序存储集合,使用LinkedHashMap

 

 

 

 

 

HashMap和HashSet区别?

集合_第1张图片

 

 

 

 

 

 

 

 

HashMap的实现原理

通过put和get存储和获取对象,存储对象时,我们将K/V传给put方法时,它调用hashcode计算hash从而得到bucket位置,进一步存储,HashMap会根据当前bucket的占用情况自动调整容量。获取对象时,我们将K传递给get,他调用hashcode计算hash从而得到bucket位置,并进一步调用equals()方法确认键值对。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

List、Set、Map之间的区别?

List和Set都继承Collection,但是Map不是Collection的子接口。

集合_第2张图片

 

 

 

 

 

 

你可能感兴趣的:(集合)