当前位置: 首页 > news >正文

Day07 Stream流递归Map集合Collections可变参数

Stream

        也叫Stream流,是Jdk8开始新增的一套API (java.util.stream.*),可以用于操作集合或者数组的数据。

       Stream流大量的结合了Lambda的语法风格来编程,提供了一种更加强大,更加简单的方式操作

public class Demo1 {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("张无忌");list.add("周芷若");list.add("赵敏");list.add("张强");list.add("张三丰");//需求:把集合中所有以"张"开头,且是3个字的元素存储到一个新的集合。//实现2: 使用Stream流方式实现List<String> list1 = list.stream().filter(name -> name.startsWith("张") ).filter(name -> name.length() == 3).collect(Collectors.toList());System.out.println(list1);}
}

Stream流的使用步骤 

1.                                       2.                                              3.

                  

如何获取Stream流 

如何获取Stream流:Collection集合:单列集合都支持一个stream()方法,它可以直接获取集合的Stream流数组:Arrays.stream(数组)零散数据:Stream.of(T... values)Map双列集合并没有提供直接获取Stream流的方法,他需要间接获取
public class Demo2 {public static void main(String[] args) {//"玄奘", "悟空", "悟能", "悟净"List<String> list = List.of("玄奘", "悟空", "悟能", "悟净");//Collection集合: 单列集合都支持一个stream()方法,它可以直接获取集合的Stream流list.stream().forEach(System.out::println);//数组:Arrays.stream(数组)System.out.println("-------------------------------------");String[] arr = {"玄奘", "悟空", "悟能", "悟净"};Arrays.stream(arr).forEach(System.out::println);//零散数据:Stream.of(T... values)System.out.println("-------------------------------------");Stream.of("玄奘", "悟空", "悟能", "悟净").forEach(System.out::println);//Map:双列集合并没有提供直接获取Stream流的方法,他需要间接获取System.out.println("-------------------------------------");Map<String,String> map = new HashMap<>();map.put("001","玄奘");map.put("002","悟空");map.put("003","悟能");map.put("004","悟净");//返回一个Set集合map.keySet().stream().forEach(System.out::println);map.values().stream().forEach(System.out::println);System.out.println("-------------------------------------");//这是一个整体EntrySetkeyvalue -> emap.entrySet().stream().forEach(e -> System.out.println(e.getValue() + e.getKey()));}
}

Stream流常见中间方法 

 

public class Demo3 {public static void main(String[] args) {List<Integer> list = List.of(61, 57, 66, 77, 88, 44, 100, 89, 97, 47, 70);//需求1: 找出所有及格的分数,并打印System.out.println("=================");list.stream().filter(e -> e > 60).forEach(System.out::println);//需求2: 找出所有及格的分数, 正序排列, 打印输出System.out.println("=================");list.stream().filter(e -> e > 60).sorted((o1, o2) -> o1 - o2).forEach(System.out::println);//需求3: 找出所有及格的分数, 倒序排列, 打印输出System.out.println("=================");list.stream().filter(e -> e > 60).sorted((o1, o2) -> o2 - o1).forEach(System.out::println);//需求4: 找出所有及格的分数, 倒序排列, 取前3名, 打印输出System.out.println("=================");list.stream().filter(e -> e > 60).sorted((o1, o2) -> o2 - o1).limit(3).forEach(System.out::println);//需求5: 找出所有及格的分数, 倒序排列, 取前4-6名, 打印输出System.out.println("=================");list.stream().filter(e -> e > 60).sorted((o1, o2) -> o2 - o1).skip(3).limit(3).forEach(System.out::println);//需求6:  找出所有及格的分数, 倒序排列, 取前4-6名, 将每个人的分数加10分, 打印输出System.out.println("=================");list.stream().filter(e -> e > 60).sorted((o1, o2) -> o2 - o1).skip(3).limit(3).map(e -> e + 10).forEach(System.out::println);//需求7: 将下面两个集合中的元素进行合并去重System.out.println("=================");List<String> list1 = List.of("1","2","3","4");List<String> list2 = List.of("1","5","7","4");Stream.concat(list1.stream(),list2.stream()).distinct().forEach(System.out::println);}
}

 Stream流常见终结方法

                     调用完成后,不会返回新Stream了,没法继续使用流了。 

 

public class Demo4 {public static void main(String[] args) {List<Student> list = List.of(new Student("玄奘", 60, 165.5),new Student("悟空", 50, 175.5),new Student("悟能", 55, 145.5),new Student("悟净", 40, 185.5));//1. 打印出集合中所有元素list.stream().forEach(System.out::println);//2. 统计出身高不足170的人数Stream<Student> stream = list.stream().filter(e -> e.getHeight() < 170);long count = stream.count();System.out.println(count);//3. 请找出年龄最大的对象, 并输出(了解)Student student = list.stream().max((o1, o2) -> o1.getAge() - o2.getAge()).get();System.out.println(student);//4. 请找出身高最低的对象, 并输出(了解)Student student2 = list.stream().min((o1, o2) -> Double.compare(o1.getHeight(),o2.getHeight())).get();System.out.println(student2);}
}class Student {private String name;private int age;private double height;public Student() {}public Student(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}
}

 

Stream流转数组/集合 

public class Demo5 {public static void main(String[] args) {List<Teacher> list = List.of(new Teacher("玄奘", 60, 165.5),new Teacher("悟空", 50, 175.5),new Teacher("悟空", 50, 175.5),new Teacher("悟能", 55, 145.5),new Teacher("悟净", 40, 185.5));//1. 请找出身高超过170的教师, 并放到一个新数组中Object[] objects = list.stream().filter(e -> e.getHeight() > 170).toArray();System.out.println(Arrays.toString(objects));Teacher[] teacher =  list.stream().filter(e -> e.getHeight() > 170)//len代表元素中的个数.toArray(len -> new Teacher[len]);System.out.println(Arrays.toString(teacher));//2. 请找出身高超过170的教师, 并放到一个新List集合中List<Teacher> list1 = list.stream().filter(e -> e.getHeight() > 170).collect(Collectors.toList());System.out.println(list1);//3. 请找出身高超过170的教师, 并放到一个新Set集合中Set<Teacher> list2 = list.stream().filter(e -> e.getHeight() > 170).collect(Collectors.toSet());System.out.println(list2);//4. 请找出所有的教师的姓名和身高, 放到一个新Map集合中Map<String,Double> map = list.stream().distinct().collect(Collectors.toMap(e -> e.getName(), e-> e.getHeight()));System.out.println(map);}
}class Teacher {private String name;private int age;private double height;public Teacher() {}public Teacher(String name, int age, double height) {this.name = name;this.age = age;this.height = height;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getHeight() {return height;}public void setHeight(double height) {this.height = height;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Teacher teacher = (Teacher) o;return age == teacher.age && Double.compare(teacher.height, height) == 0 && Objects.equals(name, teacher.name);}@Overridepublic int hashCode() {return Objects.hash(name, age, height);}@Overridepublic String toString() {return "Teacher{" +"name='" + name + '\'' +", age=" + age +", height=" + height +'}';}
}

Map集合

1.Map集合称为双列集合,一次需要存一对数据做为一个元素, 格式:{key1=value1 ,        key2=value2 , key3=value3 , ...}

2.Map集合的所有键是不允许重复的,但值可以重复,键和值是一一对应的,每一个键只能找到自己对应的值

Map集合体系

 

Map集合的实现类有哪些?各自的特点是? 

   1.HashMap: 无序,不重复

   2.LinkedHashMap: 有序,不重复

   3.TreeMap:排序,不重复 

 Map接口常用方法

 

Map集合三种遍历方式 

public class Demo2 {public static void main(String[] args) {//1. 创建mapHashMap<String, String> map = new HashMap<>();map.put("001", "玄奘");map.put("002", "悟空");map.put("003", "悟能");map.put("004", "悟净");//2. 各种方式进行遍历test1(map);System.out.println("=================");test2(map);System.out.println("=================");test3(map);}//遍历方式1: 先获取Map集合全部的键,再通过遍历键来找值private static void test1(HashMap<String, String> map) {Set<String> set = map.keySet();for (String s : set) {System.out.println(s + map.get(s));}}//遍历方式2: 将map中的所有键值对放入一个set集合中, 然后遍历set集合拿到每个键值对, 再取里面的键值private static void test2(HashMap<String, String> map) {Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {System.out.println(entry.getKey() + entry.getValue());}}//遍历方式3: Lambda, 使用foreach(BiConsumer bc)private static void test3(HashMap<String, String> map) {map.forEach((k,v) -> System.out.println(k+v));}
}

Map集合案例 

 

现有字符串数组如下:String[] bookArr = {"《红楼梦》-曹雪芹","《西游记》-吴承恩","《三国演义》-罗贯中","《水浒传》-施耐庵"};
需求:请将字符串中的书名提取为Map集合的键,将作者提取为Map集合的值并使用三种不同方式,遍历Map集合打印键值对元素内容
public class Demo3 {public static void main(String[] args) {Map<String,String> map = new HashMap<>();String[] bookArr = {"《红楼梦》-曹雪芹","《西游记》-吴承恩","《三国演义》-罗贯中","《水浒传》-施耐庵"};for (String book : bookArr) {String[] split = book.split("-");map.put(split[0],split[1] );}System.out.println(map);Set<String> set = map.keySet();for (String key : set) {System.out.println(key + map.get(key));}System.out.println("----------------------------");Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {System.out.println(entry.getKey()+entry.getValue());}System.out.println("----------------------------");map.forEach((key , value) -> System.out.println(key+value));}
}

 HashMap底层原理

      和HashSet一样 :Day06List接口&Set接口&树-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/m0_60388241/article/details/133930070?spm=1001.2014.3001.5501

LinkedHashMap

底层数据结构依然是基于哈希表实现的,只是每个键值对元素又额外的多了一个双链表的机制记录元素顺序(保证有序)。 

TreeMap 

public class Demo6 {private String put;public static void main(String[] args) {//创建集合Map<Teacher, String> map = new TreeMap<>((o1, o2) -> o1.getAge() - o2.getAge());map.put(new Teacher("张三", 21), "河北");map.put(new Teacher("李四", 20), "山东");map.put(new Teacher("王五", 19), "山西");map.put(new Teacher("赵六", 21), "河南");map.forEach((k, v) -> {System.out.println(k + "-----" + v);});}
}class Teacher {private String name;private int age;public Teacher() {}public Teacher(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Teacher{" +"name='" + name + '\'' +", age=" + age +'}';}
}

 集合的嵌套

集合嵌套要求在程序中记住如下省份和其对应的城市信息,记录成功后,要求可以查询出湖北省的城市信息。数据江苏省 = "南京市","扬州市","苏州市","无锡市","常州市"湖北省 = "武汉市","孝感市","十堰市","宜昌市","鄂州市"河北省 = "石家庄市","唐山市","邢台市","保定市","张家口市"分析:定义一个Map集合,键用表示省份名称,值表示城市名称,注意:城市会有多个。 Map<String,List<String>>根据“湖北省”这个键获取对应的值展示即可。
public class Demo7 {public static void main(String[] args) {Map<String, List<String>> map = new HashMap<>();List<String> list = List.of("南京市","扬州市","苏州市","无锡市","常州市");List<String> list2 = List.of("石家庄市","唐山市","邢台市","保定市","张家口市");map.put("江苏省",list);map.put("河北省",list2);System.out.println(map);}
}

 Collections

  可变参数 

可变参数就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型... 参数名称优点特点:可以不传数据给它;可以传一个或者同时传多个数据给它;也可以传一个数组给它。好处:常常用来灵活的接收数据。注意事项1. 可变参数在方法内部就是一个数组2. 一个形参列表中可变参数只能有一个3. 可变参数必须放在形参列表的最后面
public class Demo {public static void main(String[] args) {sum(1546);}//计算2个整数的和//计算3个整数的和//计算4个整数的和//计算n个整数的和public static void sum(int... a){for (int i : a) {System.out.println(i);}}
}

 Collections工具类

 

public class Demo {public static void main(String[] args) {List<Integer> list = new ArrayList<>();//static <T> boolean addAll(单列集合,可变参数)   批量添加元素Collections.addAll(list,1,2,100,3,45);System.out.println(list);//static void shuffle(List集合)    打乱List集合元素顺序,每次调用都会打乱Collections.shuffle(list);System.out.println(list);//static <T> void  sort(List集合)   List集合进行自然排序Collections.sort(list);System.out.println(list);//排自定义类对象,需要指定排序规则List<Student> stuList = new ArrayList<>();stuList.add(new Student("zhangsan", 18));stuList.add(new Student("wangwu", 22));stuList.add(new Student("zhaoliu", 21));stuList.add(new Student("lisi", 19));stuList.add(new Student("qianqi", 20));//static<T> void sort(List集合,比较器);List集合进行比较器排序Collections.sort(stuList,(o1, o2) -> o1.getAge() - o2.getAge());System.out.println(stuList);}
}class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

 

 

 

 

 

相关文章:

Day07 Stream流递归Map集合Collections可变参数

Stream 也叫Stream流&#xff0c;是Jdk8开始新增的一套API (java.util.stream.*)&#xff0c;可以用于操作集合或者数组的数据。 Stream流大量的结合了Lambda的语法风格来编程&#xff0c;提供了一种更加强大&#xff0c;更加简单的方式操作 public class Demo1 {public stati…...

8.JavaScript-注释

题记 javascript注释 单行注释 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>实例</title> </head> <body><h1 id"myH1"></h1> <p id"myP"></p>…...

知识分享|分段函数线性化及matlab测试

目录 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 4 matlab测试结果说明 5 分段线性化应用 1 使用0-1变量将分段函数转换为线性约束 2 连续函数采用分段线性化示例 3 matlab程序测试 clc;clear all; gn10;tn1; x_pfsdpvar(1, t…...

ant target的depends属性

ant的target使用depends属性指明对其它target的依赖。可以依赖多个target&#xff0c;被依赖的多个target之间用逗号分隔。 ant会确保被依赖的target首先执行&#xff0c;然后再执行本target。 ant尽量按照depends属性中指明的target出现的顺序来执行&#xff08;从左到右&…...

【三维重建】DreamGaussian:高斯splatting的单视图3D内容生成(原理+代码)

文章目录 摘要一、前言二、相关工作2.1 3D表示2.2 Text-to-3D2.3 Image-to-3D 三、本文方法3.1生成式 高斯 splitting3.2 高效的 mesh 提取3.3 UV空间的纹理优化 四. 实验4.1实施细节4.2 定性比较4.3 定量比较4.4 消融实验 总结&#xff08;特点、局限性&#xff09; 五、安装与…...

如何使用Flutter开发执行操作系统shell命令的工具

简介 Flutter是一种由Google开发的移动应用程序开发框架&#xff0c;它允许开发人员使用单个代码库构建高性能、高质量的移动体验。而Android终端命令行工具则允许用户在Android手机上运行类似于Linux的操作系统命令。本文的目的是介绍如何在Flutter应用中开发一个Android终端命…...

西山居 游戏研发工程师实习生 面经

西山居实习面经 面试时长&#xff1a;26min&#xff08;两个面试官交替问&#xff09; 1、自我介绍 2、你平常怎么学习的 3、你实习接受加班么 4、说一下Unity的生命周期&#xff0c;Start和Awake哪里不同 5、Unity中Update与FixedUpdate的区别&#xff0c;怎么设置Fixed…...

YOLOv8训练自己的数据集+改进方法复现

yolov8已经出来好几个月了&#xff0c;并且yolov8从刚开始出来之后的小版本也升级好几次&#xff0c;总体变化不大&#xff0c;个别文件存放位置发生了变化&#xff0c;以下以最新版本的YOLOv8来详细学习和使用YOLOv8完成一次目标检测。 一、环境按照 深度学习环境搭建就不再…...

尚硅谷kafka3.0.0

目录 &#x1f483;概述 ⛹定义 ​编辑⛹消息队列 &#x1f938;‍♂️消息队列应用场景 ​编辑&#x1f938;‍♂️两种模式&#xff1a;点对点、发布订阅 ​编辑⛹基本概念 &#x1f483;Kafka安装 ⛹ zookeeper安装 ⛹集群规划 ​编辑⛹流程 ⛹原神启动 &#x1f938;‍♂️…...

【Andriod】Appium的不同版本(Appium GUI、Appium Desktop、Appium Server )的安装教程

文章目录 前言一.Appium GUI二.Appium Desktop三.Appium Server 命令行版本1.安装node.js2.安装Appium Server 前言 Appium 安装提供两2方式&#xff1a;桌面版和命令行版。其中桌面版又分为 Appium GUI 和 Appium Desktop。 建议&#xff1a;使用Appium Desktop 一.Appium …...

leetcode:面试题 17.04. 消失的数字(找单身狗/排序/公式)

一、题目&#xff1a; 函数原型&#xff1a;int missingNumber(int* nums, int numsSize) 二、思路&#xff1a; 思路1 利用“找单身狗”的思路&#xff08;n^n0&#xff1b;0^nn&#xff09;&#xff0c;数组中有0-n的数字&#xff0c;但缺失了一个数字x。将这些数字按位异或0…...

基于SpringBoot的时间管理系统

基于SpringBoot的时间管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 管理员界面 用户界面 摘要 基于Spring Boot的时间管理系统是一款功能丰富…...

centos搭建elastic集群

1、环境可以在同一台集群上搭建elastic&#xff0c;也可以在三台机器上搭建&#xff0c;这次演示的是在同一台机器搭建机器。 2、下载elastic &#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch 2、​​​​​​ tar -zxvf elasticsearch-xxx-版…...

CUDA学习笔记(九)Dynamic Parallelism

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/&#xff0c;仅用于学习。 Dynamic Parallelism 到目前为止&#xff0c;所有kernel都是在host端调用&#xff0c;CUDA Dynamic Parallelism允许GPU kernel在device端创建调用。Dynamic Parallelism使递归更容易实现…...

周记之马上要答辩了

“ 要变得温柔和强大&#xff0c;就算哪天突然孤身一人&#xff0c;也能平静地活下去&#xff0c;不至于崩溃。” 10.16 今天提前写完了一篇六级阅读&#xff0c;积累了一些词组&#xff1a; speak out against 公然反对&#xff0c;印象最深刻的就这个&#xff1b; 先了解…...

git简介和指令

git是一个开源的的分布式版本控制系统&#xff0c;用于高效的管理各种大小项目和文件 用途&#xff1a;防止代码丢失&#xff0c;做备份 项目的版本管理和控制&#xff0c;可以通过设置节点进行跳转 建立各自的开发环境分支&#xff0c;互不影响&#xff0c;方便合并 在多终端开…...

alibaba.fastjson的使用(五)-- Json数组字符串 ==》 JSONArray

目录 1. 使用到的方法 2. 实例演示 1. 使用到的方法 static JSONArray parseArray(String text) 2. 实例演示 /*** 将Json数组字符串转JsonArray*/@Testpublic void test5() {String jsonArrStr = "[{\"name\":\"郭靖\",\"age\":35},{\…...

ts json的中boolean布尔值或者int数字都是字符串,转成对象对应类型

没啥好写的再水一篇 json中都是字符串&#xff0c;转换一下就好&#xff0c;简单来说就是转换一次不行&#xff0c;再转换换一次&#xff0c;整体转换不够&#xff0c;细分的再转换一次 这是vue中 ts写法 ,我这里是拿对象做对比&#xff0c;不好字符和对象做对比&#xff0c;…...

【OpenGL】七、混合

混合 文章目录 混合混合公式glBlendFunc&#xff08;混合函数&#xff09;glBlendFuncSeparate渲染半透明纹理 参考链接 混合(Blending)通常是实现物体透明度(Transparency)的一种技术 简而言之&#xff1a;混合就是如何将输出颜色和目标缓冲区颜色结合起来。 混合公式 C_fina…...

JVM——堆内存调优(Jprofiler使用)Jprofile下载和安装很容易,故没有记录,如有需要,在评论区留言)

堆内存调优 当遇到OOM时&#xff0c;可以进行调参 1、尝试扩大堆内存看结果 2、分析内存&#xff0c;看哪个地方出现了问题&#xff08;专业工具&#xff09; 调整初始分配内存为1024M&#xff0c;调整最大分配内存为1024M&#xff0c;打印GC细节&#xff08;如何添加JVM操…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...