集合

我们先通过一张思维导图认识一下集合的框架构成,方便理解和记忆。

1、ArrayList和LinkList的区别?

  •  ArrayList是数组结构,LinkList是链表结构。
  • ArrayList查询速度快,增删改速度慢。
  • LinkList刚好和ArrayList相反,LinkList查询速度慢,增删改速度快。

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

  • Collection接口的remove()必须通过下标或者集合内的元素去删除,iterator接口remove()必须配合next()方法一起使用。

3、Array与ArrayList有什么区别?

  • Array是数组,ArrayList是数组集合。
  • Array需要指定大小,ArrayList不需要指定大小(ArrayList自动扩容大小,默认大小为10,当你添加第11个时,ArrayList就会以10*1.5=15去扩容,此时大小为15,当添加第16个时,ArrayList就会以15*1.5=22去扩容,以此内推扩容)。

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

  • 数组转list,可以使用Arrays.asList(数组)
  • List转数组,使用list.toArray()
  • public static void main(String[] args) {
    
    		//数组转list
    		String[] str = {"zhangsan","lisi","wangwu"};
    		List<String> arrayList = Arrays.asList(str);
    		
    		
    		//list转数组
    		List<String> list = new ArrayList<>();
    		list.add("zhangsan");
    		list.add("lisi");
    		list.add("wangwu");
    		String[] arrays = list.toArray(new String[list.size()]);
    		
    	}

     

5、HashSet、TreeSet、LinkedHashSet区别?

  • HashSet速度快
  • TreeSet有排序功能
  • LinkedHashSet先存先取(类似与花名册,来的早的名字在前面,晚的在后面)

6、HashMap、TreeMap、LinkedHashMap区别?

  • HashMap速度快
  • TreeMap有排序功能
  • LinkedHashMap先存先取(类似与花名册,来的早的名字在前面,晚的在后面)

7、HashMap和HashSet区别

Hashmap与HashSet的区别
HashMap HashSet
调用put()的方法往map里面填值 调用add()的方法往Set里面填值
实现map接口 实现set接口
以键值对存储 存储对象
比HashSet存储快 比HashMap存储慢
使用key计算hashcode 使用成员对象计算hashcode

8、HashMap的实现原理

HashMap是以键值对存储,键不能重复,值可以重复,通过put(object,object)方法存,通过get(object)取值

9、List、Set、Map之间的区别

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

List、Set、Map之间的区别
List Set Map
可以有重复值 不能有重复值 键不能重复,值可以重复
可以有多个null值 只能有一个null值 键只能有一个null,值可以有多个重复值
有序容器,插入的顺序和输出的顺序一样 无序容器 无序容器

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章