中秋 -2024/9/16

news/2024/9/20 5:25:20

今天是中秋假期的第二天,已经过了2/3了,怎么俺滴中秋这么快就没了
今天学习了SQL语句种的查询聚合函数进行查询和Java种的集合 TreeSet,HashSet,LinkedHashSet

DQL-聚合函数

  1. 介绍:将一列数据作为一个整体,进行纵向计算
  2. 常见聚合函数

count - 统计数量
max - 最大值
min - 最小值
avg - 平均值
sum - 求和
3. 语法

SELECT 聚合函数(字段列表) FROM 表名;
注意:所有的null值不参与所有聚合函数运算

//统计数量
select count(id) from emp;//统计平均值
select avg(age) from emp;//求最大值
select max(age) from emp;//求和
select sum(age) from emp where age = 22;

DQL -分组查询

SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名[HAVING 分组后过滤条件];

注意

  • 执行顺序:where > 聚合函数 > having
  • 分组之后,查询的字段一般为聚合函数和分组函数,查询其他字段无任何含义

HashSet底层原理

  1. 创建一个默认长度为16,默认加载因子为0.75(用于数组扩容,12个时扩容)的数组,数组名为table

JDK8以后,当链表长度超过8,而且数组长度大于等于64时,自动转换为红黑树
如果集合中存储的是自定义对象,必须重写hashCode和equals方法

LinkedHashSet底层机制

TreeSet的特点

  • 不重复,无索引,可排序
  • 可排序:按照元素的默认规则(由小到大)排序
  • TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好
import java.util.Iterator;
import java.util.TreeSet;public class a07TreeSet_Test {public static void main(String[] args) {TreeSet<Integer> ts = new TreeSet<>();ts.add(1);ts.add(4);ts.add(5);ts.add(2);ts.add(3);//1.迭代器遍历Iterator<Integer> it = ts.iterator();while(it.hasNext()) System.out.println(it.next());//2.增强for循环遍历for(Integer i : ts){System.out.println(i);}//3.Lambda表示式遍历ts.forEach(i -> System.out.println(i));}
}

TreeSet集合的默认的规则

  • 对于数值类型,Integer,Double,默认按照从小到大的顺序进行排序
  • 对于字符,字符串类型:按照字符在ASCII码表的数字升序进行排序

TreeSet的两种比较方式

  1. 默认排序/自然排序:javabean类实现Comparable接口指定接口比较规则
@Overridepublic int compareTo(Student o) {return this.age - o.getAge();}

2.比较器排序:创建TreeSet对象时候,传递比较器Comparator指定规则
使用规则:默认使用第一种,如果第一种不能满足当前需求,就使用第二种

//重写接口Comparable   compareTo方法@Overridepublic int compareTo(Stu o) {//总分从小到大排序int i = this.getChinese() + this.getMath() + this.getEnglish() - o.getEnglish() - o.getMath() - o.getChinese();//总分一样,语文从小到大i = i == 0 ? this.getChinese() - o.getChinese() : i;//语文一样,数学从小到大i = i == 0 ? this.getMath() - o.getMath() : i;//数学一样,年龄从小到大i = i == 0 ? this.getAge() - o.getAge() : i;//年龄一样,名字首字母排序i = i == 0 ? this.getName().compareTo(o.getName()) : i;return i;}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

李尚杰的第一次作业

这次作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 熟悉博客的建立,向老师/助教介绍自己并阐述对课程的期待姓名-学号 李尚杰-2022329301146一、个人简介 (一)基本介绍我叫李尚杰,来自22自动化1班,浙江杭州人。我爱好摄影、旅游、看电影、健身…

数木莫系且的旭酱买水问题

dut开区用,在别的情况下该博客无效数木莫系且的旭酱买水问题 创中的招新又双叒叕开始了,“数木莫系且”要开始出招新题了,“数木莫系且”的36位老东西为了想招新题整天废寝忘食、绞尽脑汁、抓耳挠腮、呕心沥血,甚至连水都忘记喝了。“数木莫系且“的不时用日语小声发癫的旭…

字符编码发展史1 — ASCII和EASCII

1. 字符集与字符编码1.1. 字符集 1.2. 字符编码 1.3. 两者的关系2. 字符编码的发展历史2.1. 第一个阶段 ASCII编码2.1.1. ASCII 2.1.2. EASCII1. 字符集与字符编码 1.1. 字符集 字符集(Charcater Set或Charset): 是一个系统支持的所有抽象字符的集合,也就是一系列字符的集合…

[JVM]对象创建过程

Java 对象的创建过程 Java对象创建的过程主要分为五个步骤,下面我将详细介绍这五个步骤。 Step1:类加载检查 虚拟机遇到一条new指令时,首先会去检查这个指令的参数是否能在常量池中定位到这个类的符号引用,并且会检查这个符号引用所指向的类是否已经完成加载、连接和初始化,…

教小模型进行推理

https://arxiv.org/abs/2212.08410 思维链提示在基础层面上是如此成功,以至于它产生了一些被称为 x 链现象的东西。谷歌研究院探索了如何使用 llm 为现有数据集生成 CoT 数据本体,然后如何在 CoT 上微调较小的语言模型。 介绍 众所周知,思维链提示提高了大型语言模型的推理能…

[WesternCTF2018]shrine

打开题目就得到了python代码 import flask import os #导包 app = flask.Flask(__name__) #创建一个flask实例, app.config[FLAG] = os.environ.pop(FLAG) #从操作系统的环境变量中读取名为FLAG的值,并将其存储在Flask的配置中,POP:读取后删除该环境变量@app.route(/) #定义…