集合容器知识点

  • 集合和数组的区别
    相同点:都可以存储对象,对外是一个整体,
    数组的缺点是长度必须是初始化指定,固定大小不变,数组采用连续存储空间,查询效率快,有小标 ,删除和添加速度慢,需要整理下标,
    不同点:数组可以存储引用类型和基本类型 集合只能存储对象,集合长度是自动扩容的,

  • 集合的接口
    collection
    list set
    list接口存储数据不唯一,有序有下标
    set接口唯一 无序
    map接口 存储键值对,key映射到value, key是无序 唯一, value 不唯一 无序

  • list接口下的实现类
    list
    ArrayList LinkedList
    ArrayList集合类是底层是数组线性表顺序表
    在内存中分配连续的空间,实现了长度动态可变的数组,
    优点是 遍历元素和查询访问元素效率高,有下标索引,
    缺点是 添加元素和删除元素需要移动大量元素,导致效率低,
    LinkedList集合类的底层是线性表和双向链表,
    其实就是双向链表结构来存储数据,
    优点是:添加和删除效率高,可以从头从尾从中间进行操作,
    缺点是:遍历和访问元素效率低
    比较集合内容用equals方法,用==号来比较引用

  • set
    实现类 HashSet LinkedHashSet TreeSet
    Hashset集合类
    底层是采用哈希表数据结构来作为存储结构,采用hash值来进行映射,保证了数据的唯一性,
    优点是 添加 删除 查询 速度快
    缺点是 无序
    LinkedHashSet实现类
    采用哈希表存储结构,使用链表维护次序,
    有序
    TreeSet实现类
    底层是红黑数存储结构
    优点是:查询效率快,有序 注意比list还快
    缺点是 :没有HashSet查询快

  • Map
    实现类有 LinkedHashMap HashMap TreeMap
    HashMap
    特点是 key 无序 唯一 value 无序 不唯一
    LinkedHashMap
    有序 速度快
    TreeMap
    有序 速度没有hash快
    在这里插入图片描述
    在这里插入图片描述

  • 在哈希表中判断两个元素是否重复要使用到hashCode()和equals()方法,hashCode()决定了数据在表中的存储位置就是地址,equals是判断是否是相同数据。

  • Collection和Collections有什么区别
    Collection是一个集合接口,它提供了对集合对象进行的基本操作通用方法,所有的集合都是它的子类,
    Collections是一个包装类,不能被实例化,一个工具类,提供给集合进行一些操作方法

  • 如何决定使用HashMap还是TreeMap
    对于map集合进行添加,删除,定位一个元素操作,Hashmap是最好选择,底层是hash表
    如果想要对一个key集合进行有序遍历,treemap可以进行选择,

  • HashMap实现原理
    HashMap是基于hash算法实现的,通过put(key,value)来存储,get(key)来获取,
    先定义key值根据key.hashCode()方法计算出hash值,根据hash值将value保存在集合中,hash值相同则value相同,

  • ArrayList和LinkedList的区别是什么
    arraylist集合的底层是动态数组数据结构,linkedlist 集合底层是双向链表数据结构,
    arraylist集合随机访问效率高,linkedlist是线性的数据存储方式 查询从前到后依次进行
    arraylist集合在增加和删除时效率低,下标的操作,linkedlist删除可以任意位置,
    总结就是经常查询数据用arraylist ,经常添加删除用linkedList

  • LinkedHashMap集合的特点
    linkedHashmap集合是hashmap集合中的一个子类,能够保留添加顺序的记录,遍历时也是先进先出,

  • Collections工具类
    这个工具类它提供了Set,Map,List集合可以进行排序,填充和查找元素的方法,该类中的所有方法都是静态方法,
    常用方法是:
    sort(List) 对list集合内的元素进行排序,按照升序来排,
    shuffle(list) 对元素进行随机排序,洗牌啊
    reverse(List) 对元素进行逆序排序,
    binarySearch(List,Object) 对顺序的list容器进行查找特定对象,

  • 集合

java的容器
collection容器 
	1 list集合 arraylist 基于数组实现的有序集合, linkedlist 基于链表实现的有序集合
	2 set不重复   hashset 基于hash实现的不重复集合无序,linkedhashset 有序不重复集合, treeset 不重复可排序
	
map容器
	1 hashtable key和value不为null,
	2 hashmap key和value可以为null,
	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值