首页 > 其他分享 >集合学习总结

集合学习总结

时间:2023-09-07 19:45:42浏览次数:40  
标签:总结 Object 下标 元素 value 学习 key 集合

集合总结

一、概述

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

  2. 所处的位置:java.util

  3. 体系结构

image

二、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文件的

标签:总结,Object,下标,元素,value,学习,key,集合
From: https://www.cnblogs.com/swz20020720/p/17685905.html

相关文章

  • 机器学习算法原理实现——使用交叉熵、梯度下降求解逻辑回归
    交叉熵的定义以及和熵的区别?   交叉熵是衡量两个概率分布之间的差异的一个度量。在机器学习和深度学习中,尤其是分类问题,交叉熵常被用作损失函数。交叉熵度量的是实际分布(标签)与模型预测之间的不一致程度。 这个值越小,模型的预测与真实分布越接近。完美的预测会有交......
  • 初学者学习Auto.js的示例和教程资源
    1.Auto.js官方文档:您可以前往Auto.js官方网站(https://hyb1996.github.io/AutoJs-Docs/#/)查看官方文档,其中包含了基本使用方法、API参考和示例代码等。2.Auto.js示例脚本:Auto.js官方文档中提供了一些示例脚本,您可以下载并运行这些脚本,以了解其基本用法和功能。3.Auto.js论坛:Auto.......
  • 总结maven的一些知识
    一、jar包管理1.引入依赖<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.13.2</version><scope>test</scope></dependency><scope>标签用来指定依赖范围(1)compile:编译......
  • .NET5学习笔记
    1、SDK 2、VS2019落落安装出错:网络-以太网-更改适配器网站-修改协议 安装板块:Web安装......
  • 写了一本适合本科生的机器学习书:《机器学习入门基础(微课版)》
    各位读者朋友们,今天我要给大家推荐一本非常实用的机器学习入门基础图书——《机器学习入门基础(微课版)》。这本书是由黄海广老师倾心打造,适合只有本科三年级数学水平以上的初学者入门,这本书已经被很多学校定为本科生教材。背景介绍本书的作者黄海广老师是一名大学教师,翻译和整理过很......
  • 中国科教工作者协会与CCF PTA联合认证学习须知
    中国科教工作者协会与CCFPTA联合认证学习须知1、参与认证人员需在科技学堂(www.sciclass.cn)上进行课程学习,然后在PTA官网(pta.ccf.org.cn)报名并参加认证考试,考试及课程学习达标者,即可获得由中国青少年科技教育工作者协会与中国计算机学会联合颁发的认证证书。具体报名流程及认......
  • 整体二分学习笔记
    有一些题目需要用到二分,但多次询问直接二分,会导致TLE,那么就需要用到一个离线算法,将多个询问放在一起二分,这就是整体二分。条件能够用整体二分解决的题目需要满足以下性质:1.题目具有可二分性(即单调性);2.修改对判定答案的贡献相互独立,修改之间互不影响效果。3.修改如果对判定答......
  • 在小红书上学习专业摄影后期处理技巧
    嘿,小红书的朋友们!今天我要和大家分享一些在小红书上学习专业摄影后期处理技巧的秘诀。作为一个热爱摄影的人,我深知后期处理对于一张照片的重要性。它能够让平凡的照片变得生动有趣,甚至让你的朋友都惊叹不已!下面,就让我来带领大家一起进入这个色彩斑斓的后期处理世界吧!1.选择合......
  • 软件测试|pip常用命令总结
    当使用Python进行开发时,pip是一个非常有用的包管理工具,它可以帮助我们方便地安装、升级和管理Python包。本文将介绍一些常用的pip命令,以帮助您更好地使用pip。查看帮助文档运行pip--help运行这个命令将帮助我们更好地了解pip的使用,pip命令的参数会完整展示出来,如下:pip--he......
  • 趣味微项目:玩转Python编程,轻松学习快乐成长!
    ......