集合学习总结

打印 上一主题 下一主题

主题 837|帖子 837|积分 2521

集合总结

一、概述


  • 作用:存储对象的容器,代替数组的,使用更加的便捷
  • 所处的位置:java.util
  • 体系结构

二、Collection


  • 内部的每一个元素都得是引用数据类型
  • 常用方法

    • add(Object o)  添加元素
    • addAll(Collection c)  将指定集合中的所有元素存入到当前集合
    • remove(Object o) 移除元素
    • removeAll(Collection c)  删除当前集合中包含指定集合中的所有元素
    • isEmpty()    判断集合是否为空集合
    • size()   返回集合中元素的个数
    • clear()    清空集合
    • contains(Object o) :判断集合中是否包含指定的元素
    • containsAll(Collection c)  判断当前集合是否包含指定集合中的所有元素

三、List


  • List是Collection下的一个子接口
  • 特点:有序,可重复,有下标
  • 常用方法

    • add(int  index,Object)  将指定元素添加到当前集合指定的位置
    • remove(int index)  删除当前集合指定位置上的元素
    • get(int index)  获取当前集合中指定位置上的元素
    • set(int index, Object o)   将当前集合中指定位置上的元素替换为指定的元素
    • List subList(int a,int b)  截取当前集合中的元素获取一个子集、

四、List接口的实现类

(一)ArrayList(重点)


  • 特点:底层封装了一个数组用于存储数据,数组默认长度为10
  • 查询快,增删慢
  • JDK1.2提供的
  • 线程不安全
(二)LinkedList


  • 特点:底层封装了链表用于存储数据,
  • 增删快,查询慢,首尾操作极快
  • JDK1.2提供
  • 线程不安全
(三)Vector(了解)


  • 内部封装一个数组用于存储数据
  • 查询快,增删慢
  • JDK1.0提供,最原始的集合
  • 线程安全的
  • Stack(栈)继承了Vector
五、遍历集合


  • for循环遍历
  • 新循环,增强for循环
  • 迭代器(iterator)遍历

    • boolean  hashNext()    问,是否有下一个元素
    • E next()    取,获取下一个元素
    • void remove()  删  删除当前元素

  • forEach方法遍历  结合了Lambda表达式
六、Collections (类)


  • java.util.Collections  是一个集合工具类
  • 相关方法

    • Collections.sort(List list)  将集合进行升序排序
    • Collections.sort(List list, Comparator com)   自定义排序
    • Collections.reverse(List list) 将集合元素进行反转

七、Set接口


  • 也是Collection下的子接口
  • 特点:无序,无下标,元素不可重复
  • 常用方法:Set的常用方法基本都是继承自Collection
八、Set接口的实现类

(一)HashSet


  • 特点: 无序,不重复,无下标
  • 数据存储方式:由数组 + 链表 进行存储  ,内部元素称为 entry
  • 去重机制:hashCode()方法 + equals()方法
(二) LinkedHashSet


  • 特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的)
  • 数据存储方式:由数组 + 链表 进行存储  ,内部元素称为 entry
  • 去重机制 :hashCode()方法 + equals()方法
(三)TreeSet


  • 特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序,元素必须实现Comparable接口)
  • 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序
  • 去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同
  • compareTo()  比较器:

    • 返回值大于0   升序
    • 返回值等于0    相等,去重 ,
    • 返回值小于0   降序

九、Map


  • 特点:一个元素由两个对象构成,分别作为key和value,无序,无下标,键不可以重复,值可以重复,通过键来访问
  • 常用方法

    • put(Object key,Object value) :往Map中存放一个元素
    • get(Object key)  通过指定的key获取当前集合中的value
    • remove(Object key)   通过指定的key删除当前集合中的元素
    • size() 获取集合中元素的个数
    • keySet() :  将集合中所有的key转换成一个Set集合
    • entrySet(): 将集合中所有元素转换成一个Set集合
    • values(): 将集合中所有的value 转换成一个Collection集合
    • containsKey(Object key): 当前集合中是否包含指定的key
    • containsValue(Object value):当前集合中是否包含指定的value

  • 遍历Map集合的四种方式

    • 遍历所有的key     keySet()
    • 遍历所有的键值对  entrySet()
    • 遍历所有的value   values()
    • forEach()遍历

十、Map接口的实现类

(一)HashMap(重点)


  • 特点:无序,不重复,无下标
  • 允许null作为key和value
  • JDK1.2提供,线程不安全
  • 去重机制:hashCode() + equals()
(二)LinkedHashMap


  • 特点:不重复,无下标,有序(可以保存元素的插入顺序)
  • 允许null作为key和value
  • JDK1.2提供,线程不安全
  • 去重机制:hashCode() + equals()
(三) TreeMap


  • 特点:不重复,无下标,有序(对key自动排序(自然排序))
  • 允许null作为key和value
  • JDK1.2提供,线程不安全
  • 元素必须实现Comparable接口,并重写compareTo方法
  • 去重机制:根据compareTo方法,如果返回值为0则是同一个对象
(四)Properties


  • 一般会创*.properties文件作为配置文件
  • Prpperties是用于读取*.properties文件的

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表