菜鸟之路Day11-12一一集合进阶(四)
菜鸟之路Day11-12一一集合进阶(四)
作者:blue
时间:2025.1.29-1.30
文章目录
- 菜鸟之路Day11-12一一集合进阶(四)
- 0.概述
- 1.可变参数
- 2.Collections
- 3.综合练习
- 4.不可变的集合
- 5.Stream流
0.概述
内容学习自黑马程序员,BV1yW4y1Y7Ms,过年了,精神上有些懈怠,效率有所下降,得迅速调整一下。
1.可变参数
方法形参的个数是可以发生变化的,0 1 2 3 ……
格式:属性类型……名字
有关可变参数的小细节:
1.在方法的形参中最多只能写一个可变参数
2.在方法的形参当中,如果出现了可变参数以外,还有其他形参,那么可变参数要写在最后
例子:
public class Test {public static void main(String[] args) {System.out.println(getSum(1,1,2,3,4,5,5));System.out.println(getSum(1,2,3));}public static int getSum(int...args){//可变参数,本质是一个数组int sum=0;for(int i:args){sum+=i;}return sum;}
}
2.Collections
java.util.Collections:是集合工具类
作用:Collections不是集合,而是集合的工具类
Collections常用的API代码演示:
package Test;import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;public class CollectionsTest {public static void main(String[] args) {//1.public static <T> boolean addAll(Collection<T> c,T... elements) 批量添加元素ArrayList<Integer> list = new ArrayList<>();Collections.addAll(list,1,2,3,4,5,6,7,8,9,10);System.out.println(list);System.out.println("================================");//2.public static void shuffle(List<?> list) 打乱List集合元素的顺序,注意,这个Set是不能用的Collections.shuffle(list);System.out.println(list);System.out.println("================================");//3.public static <T> void sort(List<T> list) 排序Collections.sort(list);System.out.println(list);System.out.println("================================");//4.public static <T> void sort(List<T> list,Comparator<T> c) 根据指定的规则进行排序Collections.sort(list, new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o2-o1;}});System.out.println(list);System.out.println("================================");//5.public static <T> int binarySearch(List<T> list,T key) 用二分查找法查找元素,注意二分查找List必须得是有序的Collections.sort(list);//先变成有序的int index = Collections.binarySearch(list,2);//查找2的位置System.out.println(index);//2的索引是1System.out.println("================================");//6.public static <T> int fill(List<T> list,T obj) 使用指定的元素填充集合//Collections.fill(list,3);//System.out.println(list);//7.public static <T> void max/min(Collection<T> coll) 根据默认的自然排序System.out.println(Collections.max(list));System.out.println("================================");//8.public static <T> void swap(List<?> list,int i,int j) 交换集合中指定位置的元素Collections.swap(list,1,8);System.out.println(list);}
}
3.综合练习
练习一:
随机点名,学生属性:姓名,年龄,性别
public class Test1 {public static void main(String[] args) {ArrayList<Student> list = new ArrayList<>();Student s1 = new Student("zhangsan",18,"男");Student s2 = new Student("lisi",21,"男");Student s3 = new Student("wangwu",18,"男");Student s4 = new Student("zhaoliu",16,"女");Student s5 = new Student("xiaoqi",18,"男");Student s6 = new Student("laoba",17,"女");Student s7 = new Student("huangjiu",18,"男");Collections.addAll(list,s1,s2,s3,s4,s5,s6,s7);Random rd = new Random();int index = rd.nextInt(list.size());System.out.println(list.get(index));}
}
练习2:
带概率的随机点名,要求有70%概率随机到男生,有30%的概率随机到女生
public class Test2 {public static void main(String[] args) {//创建一个集合,存储7个1,和3个0,1代表抽男生,0代表抽女生,这样就随机出了概率ArrayList<Integer> list = new ArrayList<>();Collections.addAll(list,1,1,1,1,1,1,1,0,0,0);Collections.shuffle(list);//打乱Random rd = new Random();int index = rd.nextInt(list.size());//随机抽取数字,产生概率0.7和0.3的过程int number = list.get(index);//1代表抽男生,0代表抽女生ArrayList<String> boyList = new ArrayList<>();Collections.addAll(boyList,"ggboy","zhangsan","kevin","james","zero","888","666");ArrayList<String> girlList = new ArrayList<>();Collections.addAll(girlList,"刘亦菲","章若楠","田曦微");if(number==1){int boyindex = rd.nextInt(boyList.size());System.out.println(boyList.get(boyindex));}else{int girlindex = rd.nextInt(girlList.size());System.out.println(girlList.get(girlindex));}}
}
练习3:
要求:被点到的学生不会再被点到,但是全部点完了,就得重开一把
public class Test3 {public static void main(String[] args) {ArrayList<String> list1 = new ArrayList<>();ArrayList<String> list2 = new ArrayList<>();Collections.addAll(list1,"ggboy","zhangsan","kevin","james","zero","888","666","刘亦菲","章若楠","田曦微");int cnt = list1.size();Random rd = new Random();for(int j=1;j<=10;j++){System.out.println("================="+j+"轮===================");for(int i=1;i<=cnt;i++){int index = rd.nextInt(list1.size());String res = list1.remove(index); //抽到它就把他删掉,保持,单轮次内的唯一性list2.add(res);System.out.println(res);}//做一个交替滚动list1.addAll(list2);list2.clear();}}
}
练习四:
需求:定义一个Map集合,键用省份名称province,值表示市city,但是市会有多个。添加完毕后,遍历结果格式如下:
江苏省 = 南京市,扬州市,苏州市,无锡市,常州市
湖北省 = 武汉市,孝感市,十堰市,宜昌市,鄂州市
河北省 = 石家庄市,唐山市,邢台市,保定市,张家口市
public class Test4 {public static void main(String[] args) {HashMap<String, ArrayList<String>> mp = new HashMap<>();ArrayList<String> list1 = new ArrayList<>();Collections.addAll(list1,"南京市","扬州市","苏州市","无锡市","常州市");ArrayList<String> list2 = new ArrayList<>();Collections.addAll(list2,"武汉市","孝感市","十堰市","宜昌市","鄂州市");ArrayList<String> list3 = new ArrayList<>();Collections.addAll(list3,"石家庄市","唐山市","邢台市","保定市","张家口市");mp.put("江苏省",list1);mp.put("湖北省",list2);mp.put("河北省",list3);mp.forEach(new BiConsumer<String, ArrayList<String>>() {@Overridepublic void accept(String s, ArrayList<String> strings) {System.out.print(s+" "+"="+" ");for (int i = 0; i < strings.size(); i++) {if(i!=strings.size()-1){System.out.print(strings.get(i)+","+" ");}else System.out.print(strings.get(i));}System.out.println();}});}
}
4.不可变的集合
应用场景:1.如果某个数据不能被修改,把他防御性的拷贝到不可变集合中是个很好的实践
2.当集合对象被不可信的库调用时,不可变形式是安全的。
简单理解:不想让别人修改集合中的内容
创建不可变集合的书写格式
在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的集合
注意:这个集合不能添加,不能删除,不能修改
public class Day11Test1 {public static void main(String[] args) {//static <E> List<E> of(E...elements) 创建一个具有指定元素的List集合对象List<Integer> list = List.of(1,2,3,4,5,6);/*list.add(1);list.remove(0);这时各种试图改变集合的操作都是不被允许的*///static <E> Set<E> of(E...elements) 创建一个具有指定元素的Set集合对象//Set<Integer> set = Set.of(1,1,2,3,4,5,6);注意集合元素是不可重复的,创建不可变集合,输入重复的内容,也是不被允许的Set<Integer> set = Set.of(1,2,3,4,5,6);//static <K,V> Map<K,V> of(E...elements) 创建一个具有指定元素的Map集合对象//注意:创建时,键不能重复//注意:最多只能添加10个键值对!!!Map<String,Integer> mp = Map.of("zhangsan",14,"lisi",15);//如果要添加元素的数量多余10个,可以用以下方法来解决,它的思想是将键与值视为整体,键值对为Map.Entry对象,这样子我们就只有一个可变参数,就可以不去限制长度//步骤://1.创建一个普通的Map集合HashMap<String,String> hm = new HashMap<>();hm.put("zhangsan","nanjing");hm.put("wangwu","shantou");hm.put("xiaomu","qingdao");hm.put("chener","jiaxin");//2.利用上面的数据来创建一个不可变的集合/*//获取到所有键值对对象(Entry对象)Set<Map.Entry<String,String>> entries = hm.entrySet();//把entries变成一个数组Map.Entry[] arr = new Map.Entry[0];//toArray方法会在底层比较集合长度跟数组长度两者的大小//如果集合长度 > 数组长度 :数据在数组中放不下,此时会根据实际数据的个数,重新创建数组//如果集合长度 <= 数组的长度 :数据在数组中放的下,此时不会创建新数组,而是直接用//所以那里的参数0,是最节约空间的方法Map.Entry[] arr2 = entries.toArray(arr);//这样就创建了一个不可变集合Map map = Map.ofEntries(arr2);*///以上方法麻烦,jdk10以后Map<String,String> map = Map.copyOf(hm);//这样创建出来就是一个不可变map,这样长度就不会被限定了//map.put("aaa","bbb"); Error}
}
5.Stream流
Stream流初体验:
public class StreamTest1 {public static void main(String[] args) {/*创建集合添加元素,完成以下需求:1.把所有“张”开头的元素存储到新集合中2.把"张"开头的,长度为3的元素再存储到新集合中3.遍历打印最终结果*/ArrayList<String> list1 = new ArrayList<>();Collections.addAll(list1,"张无忌","周芷若","赵敏","赵强","张三丰");list1.stream().filter(name->name.startsWith("张")).filter(name -> name.length() == 3 ).forEach(System.out::println);}
}
Stream流的作用:结合了Lambda表达式,简化集合,数组的操作
Stream流的使用步骤:
①先得到一条Stream流(流水线),并把数据放上去;
获取方式 | 方法名 | 说明 |
---|---|---|
单列集合 | default Stream stream() | Collection中的默认方法 |
双列集合 | 无 | 无法直接使用stream流 |
数组 | public static Stream stream(T[] array) | Arrays工具类中的静态方法 |
一堆零散数据 | public static Stream of(T…values) | Stream接口中的静态方法 |
单列集合
public class StreamTest2 {public static void main(String[] args) {//1.单列集合获取Stream流ArrayList<String> list = new ArrayList<>();Collections.addAll(list,"a","b","c","d","e","f");//Stream<String> stream1 = list.stream();获取到一条流水线//使用终结方法打印一下流水线上的所有数据list.stream().forEach(s -> System.out.println(s));}
}
双列集合
public class StreamTest3 {public static void main(String[] args) {//1.创建双列集合HashMap<String,Integer> hm = new HashMap<>();//2.添加数据hm.put("aaa",111);hm.put("bbb",222);hm.put("ccc",333);hm.put("ddd",444);//3.第一种获取stream流//用keySet方法获取它所有的键的单列集合hm.keySet().stream().forEach(s-> System.out.println(s));//4.第二种方法获取stream流//获取键值对集合,再获取其Stream流hm.entrySet().stream().forEach(s-> System.out.println(s));}
}
数组
public class StreamTest4 {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6,7,8};//利用工具类Arrays中的方法获取Stream流Arrays.stream(arr).forEach(s -> System.out.println(s));}
}
一堆零散的数据
import java.util.stream.Stream;
public class StreamTest5 {public static void main(String[] args) {Stream.of(1,2,3,4,5).forEach(s -> System.out.println(s));}
}//注意:
//Stream接口中静态方法of的细节
//方法的形参是一个可变参数,可以传递一堆零散数据,也可以传递数组
//但是数组必须是引用数据的,如果传递基本数据类型,是会把整个数组当做一个元素,放到Stream当中
②使用中间方法对流水线上的数据进行操作;
注意1:中间方法,返回新的Stream流,原来的Stream流只能使用一次,建议使用链式编程
注意2:修改Stream流中的数据,不会影响原来集合或者数组中的数据
public class StreamTest6 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();Collections.addAll(list,"张无忌","周芷若","赵敏","张强","张三丰","张翠山","张良","赵敏","谢逊");//1.filter 过滤 把张开头的留下,其余的数据过滤不要/*list.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {//如果返回值为true,表示当前的数据留下//如果返回值为false,表示当前数据舍弃不要return s.startsWith("张");}}).forEach(s -> System.out.println(s));*/list.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.print(s));System.out.println();System.out.println("==========================================");//2.limit 获取前几个元素list.stream().limit(3).forEach(s -> System.out.print(s));System.out.println();System.out.println("==========================================");//3.skip 跳过前几个元素list.stream().skip(4).forEach(s -> System.out.print(s));System.out.println();System.out.println("==========================================");//4.distinct 元素去重,依赖(hashCode和equals方法)list.add("张无忌");list.add("张无忌");list.stream().distinct().forEach(s-> System.out.print(s));System.out.println();System.out.println("==========================================");//5.concat 合并a,b两个流为一个流ArrayList<String> list2 = new ArrayList<>();Collections.addAll(list2,"你好","你不好");Stream.concat(list.stream(),list2.stream()).forEach(s -> System.out.print(s));System.out.println();System.out.println("==========================================");//6.map 转换流中的数据类型ArrayList<String> list3 = new ArrayList<>();//后面的数字代表年龄Collections.addAll(list3,"小张-15","小赵-16","小风-17","小良-18","小王-19");//需求:只获取里面年龄并进行打印//String -> int/*list3.stream().map(new Function<String, Integer>() {@Overridepublic Integer apply(String s){String[] arr = s.split("-");String ageString = arr[1];int age = Integer.parseInt(ageString);return age;}}).forEach(s -> System.out.print(s+" "));*/list3.stream().map(s -> Integer.parseInt(s.split("-")[1])).forEach(s-> System.out.print(s+" "));System.out.println();System.out.println("==========================================");}
}
③使用终结方法对流水线上的数据进行操作
/*void forEach(Consumer action) 遍历long count() 统计toArray() 收集流中的数据,放到数组中
*/
public class StreamTest7 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<>();Collections.addAll(list,"aaa","bbb","ccc","ddd","eee","fff","ggg");System.out.println(list.stream().count());//toArray() 收集流中的数据,放到数组中//Object[] arr1 = list.stream().toArray();//System.out.println(Arrays.toString(arr1));//指定数组类型/*String[] arr = list.stream().toArray(new IntFunction<String[]>() {@Overridepublic String[] apply(int value) {return new String[value];}});*/String[] arr = list.stream().toArray(value -> new String[value]);System.out.println(Arrays.toString(arr));}
}
相关文章:
菜鸟之路Day11-12一一集合进阶(四)
菜鸟之路Day11-12一一集合进阶(四) 作者:blue 时间:2025.1.29-1.30 文章目录 菜鸟之路Day11-12一一集合进阶(四)0.概述1.可变参数2.Collections3.综合练习4.不可变的集合5.Stream流 0.概述 内容学习自黑…...
在Ubuntu下编译VLC
参考链接: https://blog.csdn.net/zyhse/article/details/113662686...
python开发,最好的环境是什么
目录 1. 集成开发环境(IDE) 1.1 PyCharm 1.2 Visual Studio Code (VSCode) 2. 文本编辑器 2.1 Sublime Text 2.2 Vim/NeoVim 3. 虚拟环境管理 4. 版本控制与协作 5. 容器化开发 6. 项目管理与依赖管理工具 7. 单元测试与调试 最佳组合推荐 …...
Maui学习笔记- SQLite简单使用案例02添加详情页
我们继续上一个案例,实现一个可以修改当前用户信息功能。 当用户点击某个信息时,跳转到信息详情页,然后可以点击编辑按钮导航到编辑页面。 创建项目 我们首先在ViewModels目录下创建UserDetailViewModel。 实现从详情信息页面导航到编辑页面…...
创建前端项目的方法
目录 一、创建前端项目的方法 1.前提:安装Vue CLI 2.方式一:vue create项目名称 3.方式二:vue ui 二、Vue项目结构 三、修改Vue项目端口号的方法 一、创建前端项目的方法 1.前提:安装Vue CLI npm i vue/cli -g 2.方式一&…...
好用的AI/解析网站
文件解析 json文件解析:http://www.yunjson.com/jsoncheck/...
C语言练习(31)
有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课程成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课程成绩如下&am…...
《深入浅出HTTPS》读书笔记(31):HTTPS和TLS/SSL
《深入浅出HTTPS》读书笔记(31):HTTPS和TLS/SSL TLS/SSL协议和应用层协议无关,它只是加密应用层协议(比如HTTP)并传递给下层的TCP。 HTTP和TLS/SSL协议组合在一起就是HTTPS, HTTPS等…...
SpringBoot AOP 和 事务
SpringBoot 整合 AOP 动态代理技术 JDK 动态代理 JDK 动态代理是 Java 自带的一种代理方式。它要求目标类必须有接口,基于这个接口,JDK 在运行时会动态生成一个代理对象。这个代理对象和目标对象就像 “拜把子” 的兄弟,因为它们都实现了相同…...
如何使用Python调用大语言模型的API接口?
以下是使用 Python 调用几种常见大语言模型 API 接口的详细步骤和示例代码: 1. 调用 OpenAI 的 GPT 模型 API OpenAI 提供了强大的 GPT 系列模型,使用其 API 需要先注册 OpenAI 账号并获取 API 密钥。 步骤: 安装openai库:pip…...
如何监控ubuntu系统某个程序的运行状态,如果程序出现异常,对其自动重启。
在Ubuntu系统中,可以通过编写脚本结合cron或systemd来监控程序的运行状态,并在程序异常时自动重启。以下是具体步骤: 方法一:使用Shell脚本和Cron 编写监控脚本 创建一个Shell脚本来检查程序是否运行,并在程序异常时重…...
Kafka 压缩算法详细介绍
文章目录 一 、Kafka 压缩算法概述二、Kafka 压缩的作用2.1 降低网络带宽消耗2.2 提高 Kafka 生产者和消费者吞吐量2.3 减少 Kafka 磁盘存储占用2.4 减少 Kafka Broker 负载2.5 降低跨数据中心同步成本 三、Kafka 压缩的原理3.1 Kafka 压缩的基本原理3.2. Kafka 压缩的工作流程…...
启元世界(Inspir.ai)技术浅析(二):深度强化学习
深度强化学习(Deep Reinforcement Learning, DRL)是启元世界在人工智能领域的一项核心技术,广泛应用于游戏AI、智能决策等领域。 一、状态(State) 1.1 概念与作用 **状态(State)**是指智能体对环境的感知,是智能体进行决策的基础。在深度强化学习中,状态通常是一个高…...
在K8s中部署动态nfs存储provisioner
背景 之前,我已经在一台worker node上安装了local lvm 的provisioner来模拟需要本地高IOPS的数据库等stafeful应用的实现。 为了后续给虚拟机里的K8s集群安装可用的metrics和logs监控系统(metrics和logs的时序数据库需要永久存储)࿰…...
SQL注入漏洞之绕过[前端 服务端 waf]限制 以及 防御手法 一篇文章给你搞定
目录 绕过手法 前端代码绕过 后端代码绕过 各种字段进行验证 union 大小写绕过 双写逃过 强制类型判断 引号特殊编码处理。 内联注释绕过 注释符绕过 or/and绕过 空格绕过 防御SQL注入的方法 使用预编译语句 使用存储过程 检查数据类型 绕过手法 前端代码绕过…...
C++ 写一个简单的加减法计算器
************* C topic:结构 ************* Structure is a very intersting issue. I really dont like concepts as it is boring. I would like to cases instead. If I want to learn something, donot hesitate to make shits. Like building a house. Wh…...
Effective C++ 规则50:了解 new 和 delete 的合理替换时机
1、背景 在 C 中,new 和 delete 是动态分配内存的核心操作符。然而,直接使用它们有时会增加程序的复杂性,甚至导致内存泄漏和其他问题。因此,了解何时替换 new 和 delete 并选择更适合的内存管理策略,是编写高效、健壮…...
水果实体店品牌数字化:RWA + 智能体落地方案
一、方案背景 随着数字化技术的迅猛发展,实体零售行业正面临前所未有的挑战与机遇。传统的零售模式难以满足消费者对个性化、便捷化、智能化的需求,尤其是在水果等生鲜商品领域,如何通过技术手段提升运营效率、增强顾客体验、拓宽盈利模式&a…...
Docker小游戏 | 使用Docker部署FC-web游戏模拟器
Docker小游戏 | 使用Docker部署FC-web游戏模拟器 前言一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署FC-web游戏模拟器下载镜像创建容器检查容器状态检查服务端口安全设置四、访问FC-web游戏模拟器试玩游戏FC游戏的操作方法…...
【视频+图文详解】HTML基础3-html常用标签
图文教程 html常用标签 常用标签 1. 文档结构 <!DOCTYPE html>:声明HTML文档类型。<html>:定义HTML文档的根元素。<head>:定义文档头部,包含元数据。<title>:设置网页标题,浏览…...
年化19.3%策略集|ctpbee_api替换成openctp整合backtrader实盘方案(代码+数据)
原创内容第782篇,专注量化投资、个人成长与财富自由。 昨天我们把backtraderctpbee的实盘整合代码跑通了,年化19.3%,回撤仅8%的实盘策略,以及backtrader整合CTPBee做实盘(附python代码和数据) 这两周我们加…...
谭浩强C语言程序设计(3) 7章
1、递归实现N的阶乘 c复制 #include <cstdio> // 包含标准输入输出库// 计算n的阶乘 int total 0; // 定义全局变量total用于存储阶乘结果// 递归函数计算阶乘 int fac(int a){// 如果输入的数小于0,输出错误信息if (a < 0){printf("%d < 0,err…...
国产SiC碳化硅功率器件技术成为服务器电源升级的核心引擎
在服务器电源应用中,国产650V碳化硅(SiC)MOSFET逐步取代传统超结(Super Junction, SJ)MOSFET,其核心驱动力源于SiC材料在效率、功率密度、可靠性和长期经济性上的显著优势,叠加产业链成熟与政策…...
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据 一、服务器如何响应前端请求 前端与后端的交互主要通过 HTTP 协议实现。以下是详细步骤: 1. 前端发起 HTTP 请求 GET 请求:用于从服务器获取数据。POST 请求:用…...
深度学习指标可视化案例
TensorBoard 代码案例:from torch.utils.tensorboard import SummaryWriter import torch import torchvision from torchvision import datasets, transforms# 设置TensorBoard日志路径 writer SummaryWriter(runs/mnist)# 加载数据集 transform transforms.Comp…...
unity学习24:场景scene相关生成,加载,卸载,加载进度,异步加载场景等
目录 1 场景数量 SceneManager.sceneCount 2 直接代码生成新场景 SceneManager.CreateScene 3 场景的加载 3.1 用代码加载场景,仍然build setting里先加入配置 3.2 卸载场景 SceneManager.UnloadSceneAsync(); 3.3 同步加载场景 SceneManager.LoadScene 3.3.…...
网易云音乐歌名可视化:词云生成与GitHub-Pages部署实践
引言 本文将基于前一篇爬取的网易云音乐数据, 利用Python的wordcloud、matplotlib等库, 对歌名数据进行深入的词云可视化分析. 我们将探索不同random_state对词云布局的影响, 并详细介绍如何将生成的词云图部署到GitHub Pages, 实现数据可视化的在线展示. 介绍了如何从原始数据…...
Web-3.0(Solidity)基础教程
Solidity 是 以太坊智能合约编程语言,用于编写 去中心化应用(DApp)。如果你想开发 Web3.0 应用,Solidity 是必学的。 Remix - Ethereum IDE(在线编写 Solidity) 特性Remix IDEHardhat适用场景适合 初学者 …...
android获取EditText内容,TextWatcher按条件触发
android获取EditText内容,TextWatcher按条件触发 背景:解决方案:效果: 背景: 最近在尝试用原生安卓实现仿element-ui表单校验功能,其中涉及到EditText组件内容的动态校验,初步实现功能后&#…...
题单:冒泡排序1
题目描述 给定 n 个元素的数组(下标从 1 开始计),请使用冒泡排序对其进行排序(升序)。 请输出每一次冒泡过程后数组的状态。 要求:每次从第一个元素开始,将最大的元素冒泡至最后。 输入格式…...
我的毕设之路:(2)系统类型的论文写法
一般先进行毕设的设计与实现,再在现成毕设基础上进行描述形成文档,那么论文也就成形了。 1 需求分析:毕业设计根据开题报告和要求进行需求分析和功能确定,区分贴合主题的主要功能和拓展功能能,删除偏离无关紧要的功能…...
JVM_类的加载、链接、初始化、卸载、主动使用、被动使用
①. 说说类加载分几步? ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…...
数论问题79一一研究成果
(豆包智能搜索一一李扩继) 李扩继是一位在数学研究尤其是哥德巴赫猜想研究领域有一定成果的中学老师,以下是关于他的具体介绍: ①研究经历:2006年承担咸阳市教研室的立项课题《角谷猜想的研究》,虽未完成角谷猜想的证明ÿ…...
【DeepSeek-V3】AI Model Evaluation Framework and index schedule AI模型能力评价指标及对比
文章目录 AI 模型评估体系 | AI Model Evaluation Framework1. 模型架构信息 | Model Architecture Information2. 英语能力评估 | English Language Proficiency3. 编程能力评估 | Programming Capability Metrics4. 数学能力评估 | Mathematical Capability Assessment5. 中文…...
《程序人生》工作2年感悟
一些杂七杂八的感悟: 1.把事做好比什么都重要, 先树立量良好的形象,再横向发展。 2.职场就是人情世故,但也不要被人情世故绑架。 3.要常怀感恩的心,要记住帮助过你的人,愿意和你分享的人,有能力…...
Elasticsearch的开发工具(Dev Tools)
目录 说明1. **Console**2. **Search Profiler**3. **Grok Debugger**4. **Painless Lab**总结 说明 Elasticsearch的开发工具(Dev Tools)在Kibana中提供了多种功能强大的工具,用于调试、优化和测试Elasticsearch查询和脚本。以下是关于Cons…...
22_解析XML配置文件_List列表
解析XML文件 需要先 1.【加载XML文件】 而 【加载XML】文件有两种方式 【第一种 —— 使用Unity资源系统加载文件】 TextAsset xml Resources.Load<TextAsset>(filePath); XmlDocument doc new XmlDocument(); doc.LoadXml(xml.text); 【第二种 —— 在C#文件IO…...
智慧园区管理平台实现智能整合提升企业运营模式与管理效率
内容概要 在当今数字化的背景下,智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术,旨在通过智能整合各类资源与信息,帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…...
从规则到神经网络:机器翻译技术的演进与未来展望
从规则到神经网络:机器翻译技术的演进与未来展望 引言 还记得早些年用翻译软件翻译一句简单的英文句子,却发现翻译结果让人啼笑皆非的日子吗?从“我喜欢吃苹果”被翻译成“我喜欢吃苹果电脑”,到今天的神经网络机器翻译(Neural Machine Translation, NMT)能够生成语义流…...
[MySQL]事务的隔离级别原理与底层实现
目录 1.为什么要有隔离性 2.事务的隔离级别 读未提交 读提交 可重复读 串行化 3.演示事务隔离级别的操作 查看与设置事务的隔离级别 演示读提交操作 演示可重复读操作 1.为什么要有隔离性 在真正的业务场景下,MySQL服务在同一时间一定会有大量的客户端进程…...
hdfs:介绍三个脚本
1、jps-cluster.sh 如果我们想在Bigdata01 这台电脑上,查看整个集群的服务启动情况,可以使用这个脚本文件。 #!/bin/bash USAGE"使⽤⽅法:sh jps-cluster.sh" NODES("bigdata01" "bigdata02" "bigdata03…...
【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
【Rust自学】15.7. 循环引用导致内存泄漏
说句题外话,这篇文章真心很难,有看不懂可以在评论区问,我会尽快作答的。 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω…...
4.scala默认参数值
Scala具备给参数提供默认值的能力,这样调用者就可以忽略这些具有默认值的参数。 def log(message: String, level: String "INFO") println(s"$level: $message")log("System starting") // prints INFO: System starting log(&q…...
前端知识速记—JS篇:null 与 undefined
前端知识速记—JS篇:null 与 undefined 什么是 null 和 undefined? 1. undefined 的含义 undefined 是 JavaScript 中默认的值,表示某个变量已被声明但尚未被赋值。当尝试访问一个未初始化的变量、函数没有返回值时,都会得到 u…...
微信小程序中常见的 跳转方式 及其特点的表格总结(wx.navigateTo 适合需要返回上一页的场景)
文章目录 详细说明总结wx.navigateTo 的特点为什么 wx.navigateTo 最常用?其他跳转方式的使用频率总结 以下是微信小程序中常见的跳转方式及其特点的表格总结: 跳转方式API 方法特点适用场景wx.navigateTowx.navigateTo({ url: 路径 })保留当前页面&…...
【人工智能】基于Python的机器翻译系统,从RNN到Transformer的演进与实现
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器翻译(Machine Translation, MT)作为自然语言处理领域的重要应用之一,近年来受到了广泛的关注。在本篇文章中,我们将详细探讨如何使…...
蓝桥备赛指南(5)
queue队列 queue是一种先进先出的数据结构。它提供了一组函数来操作和访问元素,但它的功能相对较简单,queue函数的内部实现了底层容器来存储元素,并且只能通过特定的函数来访问和操作元素。 queue函数的常用函数 1.push()函数:…...
蓝桥云客 好数
0好数 - 蓝桥云课 问题描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位…)上的数字是奇数,偶数位(十位、千位、十万位…)上的数字是偶数,我们就称之为“好数”。 给定一个正…...
CF 764B.Timofey and cubes(Java实现)
题目分析 输入n个数字,首尾交换,奇数对换,偶数对不换 思路分析 存入数组,遍历时判断i%20时(数组下标0开始,所以题目分析没有错),对换 代码 import java.util.*;public class Main {public static void ma…...