集合的总结与复习

集合总结

1.1 什么是集合

集合可以看做是一个对象容器,可以存储很多个对象,管理多个对象及操作比较方便

1.2 集合与数组的区别

长度区别:
数组的长度是固定的而集合的长度是可变的;

存储数据类型的区别:
数组可以存储基本数据类型,也可以存储引用数据类型; 而集合只能存储引用数据类型;

内容区别:
数组只能存储同种数据类型的元素,集合可以存储不同类型的元素;

1.3 集合框架图

1.4 Collection接口

单列数据,定义了存取一组对象的方法的集合

List: 元素有序、可重复的集合

Set: 元素无序、不可重复的集合

Map接口: 双列数据,保存具有映射关系“key-value对”的集合

1.5 单列集合

1.6 双列集合

1.7 List集合子类的特点

ArrayList集合

底层是数组结构实现,查询快、增删慢
LinkedList集合

底层是链表结构实现,查询慢、增删快

1.8 set集合的排序方法

自然排序:

自定义类实现Comparable接口,重写compareTo方法,根据返回值进行排序

比较器排序:

创建TreeSet对象的时候传递Comparator的实现类对象,重写compare方法,根据返回值进行排序

1.9 hashMap集合特点

HashMap底层是哈希表结构的

依赖hashCode方法和equals方法保证键的唯一

如果键要存储的是自定义对象,需要重写hashCode和equals方法

1.10 hashMap集合底层

jdk1.8以前是数组+链表;jdk1.8以后是数组+链表+红黑树

1.11 treeMap集合特点

TreeMap底层是红黑树结构

依赖自然排序或者比较器排序,对键进行排序

如果键存储的是自定义对象,需要实现Comparable接口或者在创建TreeMap对象时候给出比较器排序规则

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/449370.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

百无聊赖之JavaEE从入门到放弃(十八)其他常用类

目录 一.Math 类 二.Random 类 三.File类 四.枚举 一.Math 类 java.lang.Math 提供了一系列静态方法用于科学计算;常用方法如下: abs 绝对值 acos,asin,atan,cos,sin,tan 三角函数 sqrt 平方根 pow(double a, double b) a 的 b 次幂 max(double a,…

大数据分析|设计大数据分析的三个阶段

文献来源:Saggi M K, Jain S. A survey towards an integration of big data analytics to big insights for value-creation[J]. Information Processing & Management, 2018, 54(5): 758-790. 下载链接:链接:https://pan.baidu.com/s/1…

C++ pair+map+set+multimap+multiset+AVL树+红黑树(深度剖析)

文章目录 1. 前言2. 关联式容器3. pair——键值对4. 树形结构的关联式容器4.1 set4.1.1 set 的介绍4.1.2 set 的使用 4.2 map4.2.1 map 的介绍4.2.2 map 的使用 4.3 multiset4.3.1 multiset 的介绍4.3.2 multiset 的使用 4.4 multimap4.4.1 multimap 的介绍4.4.2 multimap 的使…

java处理ppt方案详解

需求 需要系统中展示的ppt案例有一个动态展示的效果,也就是要有动画的交互,要求支持浏览器直接打开预览 背景 目前已经实现了前端上传pptx文件,后端解析为png的图片,前端掉接口返回对应的图片,模拟播放ppt的效果 各种尝…

今天又接到了一个离谱的DEBUG订单

一、BUG程序 #include <iostream> #include <string>class Rectangle { private:int width;int height;public:Rectangle(int w, int h) {width w;height h;}void setWidth(int w) {width w;}void setHeight(int h) {height h;}int getArea() {return width *…

大数据应用开发3-Scala笔记1

一、编程框架 Scala语言是在JVM上运行的&#xff0c;兼容Java语法 区分大小写 - Scala是大小写敏感的&#xff0c;这意味着标识Hello 和 hello在Scala中会有不同的含义。 类名 - 对于所有的类名的第一个字母要大写。 如果需要使用几个单词来构成一个类的名称&#xff0c;每个…

【课程作业_01】国科大2023模式识别与机器学习实践作业

国科大2023模式识别与机器学习实践作业 作业内容 从四类方法中选三类方法&#xff0c;从选定的每类方法中 &#xff0c;各选一种具体的方法&#xff0c;从给定的数据集中选一 个数据集&#xff08;MNIST&#xff0c;CIFAR-10&#xff0c;电信用户流失数据集 &#xff09;对这…

【Springcloud篇】学习笔记五(十章):Gateway网关

第十章_Gateway新一代网关 1.Gateway简介 1.1官网 上一代zuul 1.X&#xff1a;https://github.com/Netflix/zuul/wiki 当前gateway&#xff1a;https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/ 1.2是什么 SpringCloud …

MacOS安装JDK+Maven+Idea插件+nvm等

Java安装环境(MacOS)JDKMavenIdea插件nvm等 背景&#xff1a;新机安装开发环境发现需要找很多文章&#xff0c;&#xff0c;&#xff0c;&#xff0c;这里一篇文章安装所有环境 文章目录 Java安装环境(MacOS)JDKMavenIdea插件nvm等一、安装JDK①&#xff1a;下载②&#xff1a;…

【Qt5小项目】接金币小游戏

代码量在250行左右&#xff0c; 需要源码的可以私信我。

ubuntu20.04安装sumo

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 有问题&#xff0c;请大家指出&#xff0c;争取使方法更完善。这只是ubuntu安装sumo的一种方法。一、注意事项1、首先明确你的ubuntu的用户名是什么 二、sumo安装1.…

数据库笔记

文章目录 数据库概述基本概念存储过程完整性约束范式FAQ 分布式锁RedisMySQLZooKeeper 非关系型数据库Redis数据结构限流内存淘汰机制LRU 最近最少使用LFU 最近经常使用 过期策略 关系型数据库Generic SQL数据类型索引负面影响原则类型结构FAQ 事务隔离级别并发导致的问题ACID特…