• day34 集合总结


    集合总结

    Java中如何对ArrayList集合中的元素进行排序_对arraylist集合对象排序-CSDN博客

    一、概述

    1. 作用:存储对象的容器,代替数组的,使用更加的便捷

    2. 所处的位置:java.util

    3. 体系结构

    二、Collection

    1. 内部的每一个元素都得是引用数据类型

    2. 常用方法

      • add(Object o) 添加元素

      • addAll(Collection c) 将指定集合中的所有元素存入到当前集合

      • remove(Object o) 移除元素

      • removeAll(Collection c) 删除当前集合中包含指定集合中的所有元素

      • isEmpty() 判断集合是否为空集合

      • size() 返回集合中元素的个数

      • clear() 清空集合

      • contains(Object o) :判断集合中是否包含指定的元素

      • containsAll(Collection c) 判断当前集合是否包含指定集合中的所有元素

    三、List

    1. List是Collection下的一个子接口

    2. 特点:有序,可重复,有下标

    3. 常用方法

      • add(int index,Object) 将指定元素添加到当前集合指定的位置

      • remove(int index) 删除当前集合指定位置上的元素

      • get(int index) 获取当前集合中指定位置上的元素

      • set(int index, Object o) 将当前集合中指定位置上的元素替换为指定的元素

      • List subList(int a,int b) 截取当前集合中的元素获取一个子集、

    四、List接口的实现类

    (一)ArrayList(重点)

    1. 特点:底层封装了一个数组用于存储数据,数组默认长度为10

    2. 查询快,增删慢

    3. JDK1.2提供的

    4. 线程不安全

    (二)LinkedList

    1. 特点:底层封装了链表用于存储数据,

    2. 增删快,查询慢,首尾操作极快

    3. JDK1.2提供

    4. 线程不安全

    (三)Vector(了解)

    1. 内部封装一个数组用于存储数据

    2. 查询快,增删慢

    3. JDK1.0提供,最原始的集合

    4. 线程安全的

    5. Stack(栈)继承了Vector

    五、遍历集合

    1. for循环遍历

    2. 新循环,增强for循环

    3. 迭代器(iterator)遍历

      • boolean hashNext() 问,是否有下一个元素

      • E next() 取,获取下一个元素

      • void remove() 删 删除当前元素

    4. forEach方法遍历 结合了Lambda表达式

    六、Collections (类)

    1. java.util.Collections 是一个集合工具类

    2. 相关方法

      • Collections.sort(List list) 将集合进行升序排序

      • Collections.sort(List list, Comparator com) 自定义排序

      • Collections.reverse(List list) 将集合元素进行反转

    七、Set接口

    1. 也是Collection下的子接口

    2. 特点:无序,无下标,元素不可重复

    3. 常用方法:Set的常用方法基本都是继承自Collection

    八、Set接口的实现类

    (一)HashSet

    1. 特点: 无序,不重复,无下标

    2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry

    3. 去重机制:hashCode()方法 + equals()方法

    (二) LinkedHashSet

    1. 特点:不能重复,无下标 ,但是有序(元素插入数据顺序是有序的)

    2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry

    3. 去重机制 :hashCode()方法 + equals()方法

    (三)TreeSet

    1. 特点:不能重复,无下标,有序(可以自动对集合中存入元素进行自然排序<升序>,元素必须实现Comparable接口)

    2. 数据存储方式:由数组 + 链表 进行存储 ,内部元素称为 entry,当链表中元素过多时,会通过二叉树进行排序

    3. 去重机制:根据Comparable接口中的compareTo()方法,方法返回值去过为0则表示对象相同

    4. compareTo() 比较器:

      • 返回值大于0 升序

      • 返回值等于0 相等,去重 ,

      • 返回值小于0 降序

    九、Map

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

    2. 常用方法

      • 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

    3. 遍历Map集合的四种方式

      • 遍历所有的key keySet()

      • 遍历所有的键值对 entrySet()

      • 遍历所有的value values()

      • forEach()遍历

    十、Map接口的实现类

    (一)HashMap(重点)

    1. 特点:无序,不重复,无下标

    2. 允许null作为key和value

    3. JDK1.2提供,线程不安全

    4. 去重机制:hashCode() + equals()

    (二)LinkedHashMap

    1. 特点:不重复,无下标,有序(可以保存元素的插入顺序)

    2. 允许null作为key和value

    3. JDK1.2提供,线程不安全

    4. 去重机制:hashCode() + equals()

    (三) TreeMap

    1. 特点:不重复,无下标,有序(对key自动排序(自然排序))

    2. 允许null作为key和value

    3. JDK1.2提供,线程不安全

    4. 元素必须实现Comparable接口,并重写compareTo方法

    5. 去重机制:根据compareTo方法,如果返回值为0则是同一个对象

    (四)Properties

    1. 一般会创*.properties文件作为配置文件

    2. Prpperties是用于读取*.properties文件的

  • 相关阅读:
    Arthas入门使用
    数据可视化-ECharts Html项目实战(14)
    【DL】基于卷积神经网络的一维数据二分类预测
    循序渐进 Redis 分布式锁(以及何时不用它)
    Chatbot UI集成LocalAI实现自托管的ChatGPT
    四足机器人软件架构现状分析
    使用scroll-view实现滑块视图可能遇到的问题及其解决方法
    南软复试真题
    C++面试八股(一)
    2022年Java行业分析报告,全面解析别错过
  • 原文地址:https://blog.csdn.net/weixin_45939821/article/details/132797601