Java集合总结笔记

什么是集合

集合也可以说是容器,一个动态的容器,在java中数组也是容器只不过是一个固定长度的容器,一旦存储的数据超过长度就会报错,java集合分为三类List,Set,Map

  • java中都有哪些集合

    • List
      • list 是接口 父接口为conllection,conllection也是list和set的根接口,list 有序有下标,元素内容可重复,底层用数组实现
    • Set
      • set 无序无下标 元素不可重复 实现 conllection接口
    • Map
      • 以键值对形式存放数据 无序无下标 根据key找value
  • ArrayList

    ArrayList 实现了List接口 内部由数组实现有序有下标可以理解为一个动态的数组容器,可以通过具体下标获取具体内容 查询块,删除修改慢,非线程安全一般用于查询,ArrayList用的是比较多的

  • LinkedList

    LinkedList 实现了List接口 内部由链表方式实现内部由一个node对象来进行存储 查询慢,增加删除快

  • Vector

    Vector 实现了List接口 内部由数组实现。和ArrayList方法一样加入了锁,线程安全

  • HashMap

    HashMap实现了Map接口 是以键值对形式存放数据 无序无下标元素不可重复的 key可以为null,value也可以为null,内部由数组加链表形式存放 当添加时会用key的hashcode编码调用内部hash方法返回hash值确定数组的下标确定存放位置,开始创建的是容量为16,每次扩容为2的次幂

  • HashSet

    HashSet实现了Set接口 无序无下标元素不可重复
    内部由HashMap实现 添加时元素为map的key,value为常量object对象

  • TreeSet

    TreeSet 实现了Set接口,有序元素不可重复 内部由TreeMap实现

  • TreeMap

    TreeMap 实现了Map接口,元素不可重复,key和value都不可为空内部由红黑二叉树实现

说一下ArrayList和LinkedList区别

ArrayList内部由数组实现有序有下标可直接通过下标获取,查询块,增删改慢,LinkedList内部由链表实现增删改慢查询块,一般情况下我们还是用arraylist比较多。因为只是查询数据用的比较多

说一下HashMap和TreeMap区别

==HashMap 和TreeMap都是以键值对的形式存放数据,其中HashMap是无序无下标 元素不可重复,key和value都是可以为null的,treeMap 是以二叉树实现 元素不可为空=

List中常用方法
方法名含义
add(Object t)添加元素
get(int index)通过下标回去指定元素
set(int index,Object t)在对应下标出添加指定元素替换
clear()清空集合中所有内容
indexIOf(Object t)返回指定内容的下标未找到返回-1
isEmpty()如果为空集合返回true,否则反之
remove(Object t)删除指定元素
remove(int index)删除指定下标的内容
toArray返回集合的一个Object数组
addAll(List l)讲指定集合添加到本集合中。包括重复的
lastIndexOf(Object t)从后往前找指定元素返回下标。未找到返回-1
retainAll(object o)讲两个集合合并返回两个集合中重复的元素
Map中常用方法
方法名含义
put(T key,T value)添加元素以键值对形式
get(T key)通过key获取value
clear()清空集合中所有内容
isEmpty()如果为空集合返回true,否则反之
remove(T key)通过key删除指定元素
toArray返回集合的一个Object数组
keySet()返回set集合包含key,可通过key朝招value
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值