使用集合函数查询
集合函数包括count()、sum()、avg()、max()、min();
其中count()用来统计记录的条数;
avg()用来计算字段的值得平均值;
max()用来查询字段的最大值;
min()用来查询字段的最小值;
group by关键字通常需要与集合函数一起使用。
1. count()函数
count()函数用来统计记录的条数。
2024年09月08日
使用集合函数查询
集合函数包括count()、sum()、avg()、max()、min();
其中count()用来统计记录的条数;
avg()用来计算字段的值得平均值;
max()用来查询字段的最大值;
min()用来查询字段的最小值;
group by关键字通常需要与集合函数一起使用。
1. count()函数
count()函数用来统计记录的条数。
2024年09月08日
一、Java 8 Lambda 表达式
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。
Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。
使用Lambda 表达式可以使代码变的更加简洁紧凑。
1.1 语法
lambda 表达式的语法格式如下:
(parameters) -> expression或(parameters) ->{statements; }
2024年09月08日
2024年09月08日
@Test public void testThread() throws IOException { List<User> list = new ArrayList<>(); List<User> list1 = new ArrayList<>(); User user = new User(); user.setId(new Long("10")); user.setAge(10); user.setBalance(new BigDecimal(10)); user.setName("xiaoming"); user.setUsername("xiaoming"); User user1 = new User(); user1.setId(new Long("20")); user1.setAge(20); user1.setBalance(new BigDecimal(20)); user1.setName("zhangsan"); user1.setUsername("zhangsan"); list.add(user); list.add(user1); //将用户年龄小于10岁的,的集合遍历出来 List<User> collect = list.stream().filter(user2 -> user2.getAge() <= 10).collect(Collectors.toList()); //将用户年龄小于10岁的,的集合遍历出来 转为map集合,key为id,value 名称 Map<Long, String> userMap = list.stream().filter(user2 -> user2.getAge() <= 10).collect(Collectors.toMap(User::getId, User::getName)); userMap.forEach((key, value) -> { System.out.println("主键为:" + key + ";名称为:" + value); }); //集合遍历出来 转为map集合,key为id,value 名称 Map result = list.stream().collect(HashMap::new, (map, p) -> map.put(p.getId(), JSON.toJSON(p)), Map::putAll); result.forEach((key, value) -> { System.out.println("主键为:" + key + ";名称为:" + value); }); List<Integer> strs = new ArrayList<>(); strs.add(111); strs.add(222); //list转字符串,并且转为大写 StringBuffer collect2 = Stream.of("aaa", "bbb", "ccc").collect(StringBuffer::new, (str, p) -> { str.append(p.toUpperCase()).append(","); }, StringBuffer::append); System.out.println(collect2); //list 转list<map> List<Map<String, Object>> personToMap = list.stream().collect(ArrayList::new, (list3, p) -> { Map<String, Object> map = new HashMap<>(); map.put("name", p.getName()); map.put("age", p.getAge()); map.put("id", p.getId()); list3.add(map); }, List::addAll); System.out.println(JSON.toJSONString(personToMap)); //list转为字符串 List<String> webs = Arrays.asList("voidcc.com", "voidmvn.com", "voidtool.com"); String allwebs = webs.stream().collect(Collectors.joining(",")); System.out.println(allwebs); //查询年龄大于10并且根据年龄分组 //groupingBy 根据年龄来分组: Map<Integer, List<User>> groupAge = list.stream().filter(p -> p.getAge() >= 10).collect(Collectors.groupingBy(p -> p.getAge(), Collectors.toList())); System.out.println(JSON.toJSONString(groupAge)); //groupingBy 根据年龄分组,年龄对应的键值List存储的为Person的姓名: //mapping即为对各组进行投影操作,和Stream的map方法基本一致。 Map<Integer, List<String>> collect1 = list.stream().collect(Collectors.groupingBy(p -> p.getAge(), Collectors.mapping((User p) -> p.getName(), Collectors.toList()))); //打印结果:{20:["zhangsan"],10:["xiaoming"]} System.out.println(JSON.toJSONString(collect1)); //groupingBy 根据姓名分组,获取每个姓名下人的年龄总和: Map sumAgeByName = list.stream().collect(Collectors.groupingBy(p -> p.getName(), Collectors.reducing(0, (User p) -> p.getAge(), Integer::sum))); /* 或者使用summingInt方法 */ sumAgeByName = list.stream().collect(Collectors.groupingBy(p -> p.getName(), Collectors.summingInt((User p) -> p.getAge()))); //打印结果:{"xiaoming":10,"zhangsan":20} System.out.println(JSON.toJSONString(sumAgeByName)); String strJoin = Stream.of("1", "2", "3", "4") .collect(Collectors.joining(",", "[", "]")); System.out.println("strJoin: " + strJoin); // 打印结果 // strJoin: [1,2,3,4] //字符串连接 String phrase = list .stream() .filter(p -> p.getAge() >= 10) .map(p -> p.getName()) .collect(Collectors.joining(" and ", "[", " ]")); //打印结果 [xiaoming and zhangsan ] System.out.println(phrase); /** * 使用collect可以将Stream转换成值。maxBy和minBy允许用户按照某个特定的顺序生成一个值。 averagingDouble:求平均值,Stream的元素类型为double averagingInt:求平均值,Stream的元素类型为int averagingLong:求平均值,Stream的元素类型为long counting:Stream的元素个数 maxBy:在指定条件下的,Stream的最大元素 minBy:在指定条件下的,Stream的最小元素 reducing: reduce操作 summarizingDouble:统计Stream的数据(double)状态,其中包括count,min,max,sum和平均。 summarizingInt:统计Stream的数据(int)状态,其中包括count,min,max,sum和平均。 summarizingLong:统计Stream的数据(long)状态,其中包括count,min,max,sum和平均。 summingDouble:求和,Stream的元素类型为double summingInt:求和,Stream的元素类型为int summingLong:求和,Stream的元素类型为long */ }
2024年09月08日
算法原理:
2024年09月08日
数学mathematics;
代数:algebra ;
奇数:odd number
偶数:even number ;
分数:fraction
分子:numerator ;
分母:denominator
小数:decimal ;
负数:negative number
计算:calculate ;
加:plus /add
减:minus/subtract ;
2024年09月08日
2024年09月08日
点击上方关注订阅黑码教主获取更多精彩内容
Java8统计list中指定属性的最大、最小、平均值、求和
list.stream().mapToDouble(Student1::getScore).sum()//和 list.stream().mapToDouble(Student1::getScore).max()//最大 list.stream().mapToDouble(Student1::getScore).min()//最小 list.stream().mapToDouble(Student1::getScore).average()//平均值
2024年09月08日
作者 | 远辰
本文为「数据不吹牛」投稿
今天给大家分享的是我学习MySQL记录的详细笔记,有基础知识,也有实战案例,文章较长,建议收藏~
基本语法
-- 显示所有数据库
show databases;
-- 创建数据库
CREATE DATABASE test;
-- 切换数据库
2024年09月08日
咕泡同学提问:我在看runtime文档的时候做个测试, agg求avg的时候不管是double还是long,数据都不准确,这种在生产环境中如何解决啊?