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

Java集合进阶(三)

文章目录

    • 一、Map
      • 1. 概述
      • 2. 基本功能
      • 3. 遍历
      • 4. 遍历学生对象
      • 5. 集合嵌套
      • 6. 统计字符出现次数
    • 二、Collections
      • 1. 常用方法
      • 2. 学生对象排序
    • 三、模拟斗地主

一、Map

1. 概述

Interface Map<K, V>:K 是键的类型,V 是值的类型。
将键映射到值的对象,不能包含重复的键,每个键可以映射到最多一个值。
举例:学生的学号和姓名,学号是键,姓名是值。
tyut001 刘德华
tyut002 张学友
tyut003 成吉思汗

创建 Map 集合的对象:
采用多态的方式,具体的实现类是 HashMap。

//Test.javapackage com.zxe;import java.util.HashMap;
import java.util.Map;public class Test {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("tyut001", "刘德华");map.put("tyut002", "张学友");map.put("tyut003", "成吉思汗");map.put("tyut003", "程咬金");System.out.println(map);}
}

在这里插入图片描述

利用 HashMap 保证了元素的唯一性,键是唯一的,当出现重复的键时,后者会把前者的值替换掉!

2. 基本功能

在这里插入图片描述
在这里插入图片描述

//打印输出键值对中所有的值package com.zxe;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;public class Test {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("tyut001", "刘德华");map.put("tyut002", "张学友");map.put("tyut003", "成吉思汗");Collection<String> values = map.values();for (String s : values) {System.out.println(s);}}
}

在这里插入图片描述

3. 遍历

(1)方式一

遍历思路:
① 先获取所有键的集合,用 keySet() 方法实现;
② 然后遍历键的集合,获取到每一个键,用增强 for 实现;
③ 根据键全找值,用 get(Object key) 方法实现。

package com.zxe;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Test {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("tyut001", "刘德华");map.put("tyut002", "张学友");map.put("tyut003", "成吉思汗");Set<String> key = map.keySet();for (String k : key) {String value = map.get(k);System.out.println(k + ", " + value);}}
}

在这里插入图片描述

(2)方式二

遍历思路:
① 直接获取所有键值对对象的集合,用 entrySet() 方法实现,集合为 Set 型,每一个键值对对象用 Map.Entry<String, String> 接收;
② 遍历键值对对象的集合,得到每一个键值对对象,用增强 for 实现,得到每一个 Map.Entry;
③ 根据键值对对象获取键和值,用 getKey() 得到键,用 getValue() 得到值。

package com.zxe;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Test {public static void main(String[] args) {Map<String, String> map = new HashMap<>();map.put("tyut001", "刘德华");map.put("tyut002", "张学友");map.put("tyut003", "成吉思汗");Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {String key = entry.getKey();String value = entry.getValue();System.out.println(key + ", " + value);}}
}

4. 遍历学生对象

需求:创建一个 HashMap 集合,键是学号(String),值是学生对象(Student),存储三个键值对元素,并遍历。

思路:
① 定义学生类;
② 创建 HashMap 集合对象;
③ 创建学生对象;
④ 把学生添加到集合;
⑤ 遍历集合。

//Student.javapackage com.zxe;public class Student {private String name;private int age;private String sex;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +'}';}public Student() {}public Student(String name, int age, String sex) {this.name = name;this.age = age;this.sex = sex;}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 String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}
}
//Test.javapackage com.zxe;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class Test {public static void main(String[] args) {Student s1 = new Student("刘德华", 60, "男");Student s2 = new Student("张学娥", 21, "女");Student s3 = new Student("李华", 14, "男");String sno1 = "001";String sno2 = "002";String sno3 = "003";HashMap<String, Student> allstudent = new HashMap<>();allstudent.put(sno1, s1);allstudent.put(sno2, s2);allstudent.put(sno3, s3);Set<Map.Entry<String, Student>> entries = allstudent.entrySet();for (Map.Entry<String, Student> entry : entries) {String key = entry.getKey();Student value = entry.getValue();System.out.println(key + ", " + value);}}
}

在这里插入图片描述

思考一下,如果我们的键是用户定义的学生对象,值是居住地址,这时候如何保证学生对象成员变量的值不重复的呢?
在学生类中重写两个方法,hashCode() 和 equals(),这两个方法在之前的内容中有讲过,Alt + Insert 快捷键自动生成。

以学生对象 s1 和 s2 为例,HashMap 保证的唯一性是指,该集合中不允许添加两个或更多的 s1,但可以添加一个 s1 和一个 s2,即使 s1 和 s2 中的内容一模一样,但它并不在意二者内容如何;而重写 hashCode() 和 equals() 方法保证的唯一性是指,它不允许两个对象中出现完全相同的内容。所以要想保证真正意义上的唯一性,应同时使用 HashMap 和 hashCode()、equals() 方法!

5. 集合嵌套

//Test.javapackage com.zxe;import java.util.*;public class Test {public static void main(String[] args) {HashMap<Integer, String> hm1 = new HashMap<>();hm1.put(1, "孙策");hm1.put(2, "大桥");HashMap<Integer, String> hm2 = new HashMap<>();hm2.put(3, "吕布");hm2.put(4, "貂蝉");ArrayList<HashMap<Integer, String>> a = new ArrayList<>();a.add(hm1);a.add(hm2);System.out.println(a);}
}

在这里插入图片描述

直接输出,或者也可以用遍历的方式输出:

//方法一
for (HashMap<Integer, String> hm : a) {Set<Map.Entry<Integer, String>> entries = hm.entrySet();for (Map.Entry<Integer, String> entry : entries) {System.out.println(entry.getKey() + ", " + entry.getValue());}}//方法二
for (HashMap<Integer, String> hm : a) {Set<Integer> keys = hm.keySet();for (Integer key : keys) {String value = hm.get(key);System.out.println(key + ", " +value);}}

在这里插入图片描述

6. 统计字符出现次数

需求:键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。

思路:
① 键盘录入一个字符串;
② 创建 HashMap 集合,键是 Character,值是 Integer;
③ 遍历字符串,得到每一个字符;
④ 拿得到的每一个字符作为键到 HashMap 集合中去找对应的值,看其返回值,返回值为 null 说明该字符在 HashMap 集合中不存在,就把该字符作为键,1 作为值存储,如果返回值不是 null 说明该字符在 HashMap 集合中存在,把该键所对应的值加 1,然后重新存储该键值对;
⑤ 遍历 HashMap 集合,得到键和值,按照要求进行拼接。

//Test.javapackage com.zxe;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String str = sc.nextLine();HashMap<Character, Integer> hm = new HashMap<>();for (int i = 0; i < str.length(); i++) {Character c = str.charAt(i);if (hm.containsKey(c)) {Integer newValue = hm.get(c) + 1;hm.put(c, newValue);} else {hm.put(c, 1);}}Set<Map.Entry<Character, Integer>> entries = hm.entrySet();for (Map.Entry<Character, Integer> entry : entries) {Character letter = entry.getKey();Integer num = entry.getValue();System.out.println(letter + "出现了" + num +"次!");}}
}

在这里插入图片描述

二、Collections

1. 常用方法

Collections 是针对集合操作的工具类。

常用方法:
① sort(),将指定的列表按升序排序;
② reverse(),反转指定列表中元素的顺序;
③ shuffle(),使用默认的随机源随机排列指定的列表。

//Test.javapackage com.zxe;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;public class Test {public static void main(String[] args) {List<Integer> list = new ArrayList<>();list.add(1);list.add(6);list.add(7);list.add(2);list.add(4);list.add(9);Collections.reverse(list);System.out.println("反转:" + list);Collections.sort(list);System.out.println("升序排序:" + list);Collections.shuffle(list);System.out.println("随机排序:" + list);}
}

在这里插入图片描述

这是升序排序的方法,如果想要降序排序,完全可以先对集合进行升序排序,然后再反转,就得到了降序集合。

2. 学生对象排序

需求:ArrayList 存储学生对象,使用 Collections 对 ArrayList 进行排序,要求按照年龄从大到小排序,年龄相同时,按照姓名的字母顺序排序。

//Test.javapackage com.zxe;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;public class Test {public static void main(String[] args) {Student s1 = new Student("zhangliang", 17);Student s2 = new Student("lvbu", 23);Student s3 = new Student("jiangziya", 31);Student s4 = new Student("kuangtie", 23);Student s5 = new Student("sunce", 27);ArrayList<Student> stus = new ArrayList<>();stus.add(s1);stus.add(s2);stus.add(s3);stus.add(s4);stus.add(s5);Collections.sort(stus, new Comparator<Student>() {@Overridepublic int compare(Student o1, Student o2) {int num = o1.getAge() - o2.getAge();int num2 = num == 0 ? o1.getName().compareTo(o2.getName()) : num;return num2;}});for (Student s : stus) {System.out.println(s.getName() + ", " + s.getAge());}}
}

在这里插入图片描述

这里排序的时候 sort() 方法是需要传入两个参数的,第一个就是要排序的集合,第二个需要指定一个比较器,之前我们学过的两种排序方法,自然排序和比较器排序,自然排序需要在学生类里面实现一个接口,这边我们通过比较器的方式来实现排序。

三、模拟斗地主

需求:通过程序实现斗地主过程中的洗牌、发牌和看牌,要求对牌进行排序。

思路:
① 创建 HashMap,键是编号,值是牌;
② 创建 ArrayList,存储编号;
③ 创建花色数组和点数数组;
④ 从 0 开始往 HashMap 里面存储编号,并存储对应的牌,同时往 ArrayList 里面存储编号;
⑤ 洗牌(洗的是编号),用 Collections 的 shuffle() 方法实现;
⑥ 发牌(发的也是编号),为了保证编号是排序的,创建 TreeSet 集合接收;
⑦ 定义方法看牌,遍历 TreeSet 集合,获取编号,到 HashMap 集合去到对应的牌;
⑧ 调用看牌方法。

//Test.javapackage com.zxe;import java.util.*;public class Test {public static void main(String[] args) {HashMap<Integer, String> pokers = new HashMap<>();ArrayList<Integer> indexs = new ArrayList<>();String[] colors = {"♥", "♠", "♦", "♣"};String[] numbers = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};String[] kings = {"大王", "小王"};Integer index = 0;for (String number : numbers) {for (String color : colors) {pokers.put(index, color + number);indexs.add(index);index++;}}for (String king : kings) {pokers.put(index, king);indexs.add(index);index++;}Collections.shuffle(indexs);TreeSet<Integer> indexsOfPlayer1 = new TreeSet<>();TreeSet<Integer> indexsOfPlayer2 = new TreeSet<>();TreeSet<Integer> indexsOfPlayer3 = new TreeSet<>();TreeSet<Integer> indexsRetains = new TreeSet<>();for (int i = 0; i < indexs.size(); i++) {Integer in = indexs.get(i);if (i >= indexs.size() - 3) {indexsRetains.add(in);} else {switch (i % 3) {case 0:indexsOfPlayer1.add(in);break;case 1:indexsOfPlayer2.add(in);break;default:indexsOfPlayer3.add(in);break;}}}showPokers("刘德华", indexsOfPlayer1, pokers);showPokers("张学友", indexsOfPlayer2, pokers);showPokers("程咬金", indexsOfPlayer3, pokers);System.out.println("\n底牌是:");for (Integer i : indexsRetains) {String retain = pokers.get(i);System.out.print(retain + " ");}}public static void showPokers(String name, TreeSet<Integer> indexsOfPlayer, HashMap<Integer, String> pokers) {System.out.println("\n" + name + "的牌:");for (Integer i : indexsOfPlayer) {String poker = pokers.get(i);System.out.print(poker + "  ");}}
}

在这里插入图片描述

相关文章:

Java集合进阶(三)

文章目录一、Map1. 概述2. 基本功能3. 遍历4. 遍历学生对象5. 集合嵌套6. 统计字符出现次数二、Collections1. 常用方法2. 学生对象排序三、模拟斗地主一、Map 1. 概述 Interface Map<K, V>&#xff1a;K 是键的类型&#xff0c;V 是值的类型。 将键映射到值的对象&…...

【网络】什么是RPC?RPC与HTTP有什么关系?

文章目录RPC是什么RPC和HTTP的关系和区别[附]关于REST论文中提到的"HTTP不是RPC"重点参考 凤凰架构-远程过程调用 既然有HTTP为什么还要有RPC&#xff1f; RPC是什么 RPC(Remote Procedure Call)&#xff1a;即远程过程调用&#xff0c;目的是为了让计算机能够跟调用…...

[手撕数据结构]栈的深入学习-java实现

CSDN的各位uu们你们好,今天千泽带来了栈的深入学习,我们会简单的用代码实现一下栈, 接下来让我们一起进入栈的神奇小世界吧!0.速览文章一、栈的定义1. 栈的概念2. 栈的图解二、栈的模拟实现三.栈的经典使用场景-逆波兰表达式总结一、栈的定义 1. 栈的概念 栈&#xff1a;一种…...

2.线性表的顺序表示

数据结构很重要&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01;&#xff01; 思考 1.线性表的顺序表示内容有哪些&#xff1f;&#xff08;What&#xff09; 2.为什么要学线性表的顺序表示? ? (Why)…...

eps文件删除了能恢复吗?恢复误删eps文件的三种方法

eps文件格式专为矢量图像和图形而设计。虽然没有被广泛使用&#xff0c;但它仍然受到各种插画家和平面设计师的钟爱。eps文件十分适合创建徽标和商标设计&#xff0c;主要应用见于广告牌、海报和横幅。可是在使用设备过程中&#xff0c;难免会遇到数据丢失问题&#xff0c;如果…...

【C++】运算符重载练习——Date 类

文章目录&#x1f449;日期类介绍&#x1f448;&#x1f449;日期类实现&#x1f448;&#x1f4d5; 成员变量&#x1f4d5; 构造函数&#x1f4d5; 对应月份天数&#x1f4d5; 赋值重载&#x1f4d5; 比较运算符重载&#x1f4d5; 计算 运算符重载&#x1f449;源代码&#x1…...

Redis学习(13)之Lua脚本【环境准备】

文章目录一 Lua入门环境准备1.1 Lua简介1.2 Linux 系统安装Lua1.2.1 Lua 下载1.2.2 Lua 安装1.3 Hello World1.3.1 命令行模式1.3.2 脚本文件模式1.3.3 两种脚本运行方式1.4 Win安装Lua1.4.1 LuaForWindows的安装1.4.2 SciTE修改字体大小1.4.3 SciTE中文乱码1.4.4 SciTE快捷键工…...

关于BLE的一些知识总结

数据包长度对于BLE4.0/4.1来说&#xff0c;一个数据包的有效载荷最大为20字节对于BLE4.2以上&#xff0c;数据包的有效载荷扩大为251字节传输速率在不考虑跳频间隔的情况下&#xff0c;最大传输速率为&#xff1a;1&#xff09;BLE4.0/4.1的理论吞吐率为39kb/s&#xff1b;2&am…...

Spring框架源码分析一

如何看源码&#xff08;方法论&#xff09;不要忽略源码中的注释使用翻译工具先梳理脉络&#xff0c;然后梳理细节即总分总&#xff0c;先总体过一遍&#xff0c;再看细节&#xff0c;再做一个总结大胆猜测&#xff08;8分靠猜&#xff09;&#xff0c;小心验证&#xff0c;再调…...

CSS常用内容总结(扫盲)

文章目录前言相关概念【了解】脚本语言什么是脚本语言脚本语言有什么特点常见的脚本语言什么是动态语言&#xff0c;什么是静态语言动态语言和静态语言两者之间有何区别CSSCSS是什么CSS的特点一、CSS代码怎么写基本语法规则引入方式内部样式内联样式表外部样式代码风格二、CSS的…...

Java启蒙之语言基础

目录 一.Java标识符和关键字 1.1Java标识符 1.2Java关键字 二.数据类型和变量的概述和关系 2.1Java变量 2.2Java的数据类型 2.2.1数据类型的分类的概述 2.2.2数据类型的转换 3.Java运算符 总结 &#x1f63d;个人主页&#xff1a;tq02的博客_CSDN博客-领域博主 &#…...

数据库系统--T-SQL数据查询功能-多表查询(超详细/设计/实验/作业/练习)

目录课程名&#xff1a;数据库系统内容/作用&#xff1a;设计/实验/作业/练习学习&#xff1a;T-SQL数据查询功能-多表查询一、前言二、环境与设备三、内容四、内容练习题目&#xff1a;对应题目答案&#xff1a;五、总结课程名&#xff1a;数据库系统 内容/作用&#xff1a;设…...

Spring Boot 3.0系列【14】核心特性篇之Configuration相关注解汇总介绍

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言@Configuration@ConfigurationProperties@EnableConfigurationProperties@ConfigurationPropertiesScan@Configuratio…...

[ubuntu][jetson]给jetson增加swap空间类似于给windows加虚拟内存

具体操作如下&#xff1a; #打开性能模式 sudo nvpmodel -m 0 && sudo jetson_clocks #增加swap空间&#xff0c;防止爆内存 swapoff -a sudo fallocate -l 15G /swapfile sudo chmod 600 /var/swapfile sudo mkswap /swapfile sudo swapon /swapfile…...

小黑子—Java从入门到入土过程:第二章

Java零基础入门2.0Java系列第二章1. 注释和关键字2. 字面量3. 变量3.1 基本用法3.2 使用方式3.3 注意事项4. 变量练习5. 计算机中的数据存储5.1 计算机的存储规则5.2 进制5.3 进制间转换二进制转十八进制转十十六进制转十十进制转其他进制6. 数据类型7. 定义变量的练习8. 标识符…...

ElasticSearch搜索详细讲解与操作

全文检索基础 全文检索流程 流程&#xff1a; #mermaid-svg-7Eg2qFEl06PIEAxZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7Eg2qFEl06PIEAxZ .error-icon{fill:#552222;}#mermaid-svg-7Eg2qFEl06PIEAxZ .error…...

web实现太极八卦图、旋转动画、定位、角度、坐标、html、css、JavaScript、animation

文章目录前言1、html部分2、css部分3、JavaScript部分4、微信小程序演示前言 哈哈 1、html部分 <div class"great_ultimate_eight_diagrams_box"><div class"eight_diagrams_box"><div class"eight_diagrams"><div class&…...

【LeetCode】33. 搜索旋转排序数组、1290. 二进制链表转整数

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 33. 搜索旋转排序数组 1290. 二进制链表转整数 33. 搜索旋转排序数组 33. 搜索旋转排序…...

IBM Semeru Windows 下的安装 JDK 17

要搞清楚下载那个版本&#xff0c;请参考文章&#xff1a;来聊聊 OpenJDK 和 JVM 虚拟机下载地址semeru 有认证版和非认证版&#xff0c;主要是因为和 OpenJ9 的关系和操作系统的关系而使用不同的许可证罢了&#xff0c;本质代码是一样的。在 Windows 下没有认证版&#xff0c;…...

Lambda表达式和steram流

目录 引言&#xff1a; 语法: Lambda 表达式实例&#xff1a; demo演示&#xff1a; Stream流&#xff1a; 引言&#xff1a; Lambda 表达式&#xff0c;也可称为闭包&#xff0c;它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数&#xff08;函…...

面试必会-MySQL篇

1. Mysql查询语句的书写顺序Select [distinct ] <字段名称>from 表1 [ <join类型> join 表2 on <join条件> ]where <where条件>group by <字段>having <having条件>order by <排序字段>limit <起始偏移量,行数>2. Mysql查询语…...

Hadoop入门常见面试题与集群时间同步操作

目录 一&#xff0c;常用端口号 Hadoop3.x &#xff1a; Hadoop2.x&#xff1a; 二&#xff0c;常用配置文件&#xff1a; Hadoop3.x: Hadoop2.x: 集群时间同步&#xff1a; 时间服务器配置&#xff08;必须root用户&#xff09;&#xff1a; &#xff08;1&#xff09…...

JS 数组去重的方法

// 数组去重 const arr ["1", "1", "2", "3", "5", "3", "1", "5", "4"] console.log(this.deduplicate(arr)) // [1, 2, 3, 5, 4] // 数组对象去重 const arr [ { id: 1, nam…...

PMP项目管理项目沟通管理

目录1 项目沟通管理2 规划沟通管理3 管理沟通4 监督沟通1 项目沟通管理 项目沟通管理包括通过开发工件&#xff0c;以及执行用于有效交换信息的各种活动&#xff0c;来确保项目及其相关方的信息需求得以满足的各个过程。项目沟通管理由两个部分组成&#xff1a;第一部分是制定…...

2.JVM常识之 运行时数据区

1.JVM核心组成 2.JVM 运行时数据区&#xff08;jdk8&#xff09; 程序计数器&#xff1a;线程私有&#xff0c;当前线程所执行字节码的行号指示器 jvm栈&#xff1a;线程私有&#xff0c;Java 虚拟机栈为 JVM 执行 Java 方法服务 本地方法栈&#xff1a;线程私有&#xff0c;本…...

你的游戏帐号是如何被盗的

据报道&#xff0c;2022上半年&#xff0c;中国游戏市场用户规模达到了5.54亿人&#xff0c;游戏市场销售收入1163.1亿元&#xff0c;相较去年均为同比增长的情况。如此庞大的市场规模&#xff0c;黑色产业链是绕不开的话题。 但相较于游戏中大家常见的玩家与玩家、玩家与官方…...

C++11异步编程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言1、std::future和std::shared_future1.1 std:future1.2 std::shared_future2、std::async3、std::promise4、std::packaged_task前言 C11提供了异步操作相关的类…...

20230310----重返学习-DOM元素的操作-时间对象-定时器

day-024-twenty-four-20230310-DOM元素的操作-时间对象-定时器 复习 获取元素 id document.getElementById() 类名 document.getElementsByClassName() 标签名 document.getElementsByTagName() name属性 document.getElementsByName() 选择器 document.querySelector()docum…...

江苏专转本转本人后悔排行榜

江苏专转本转本人后悔排行榜 一、复习的太迟&#xff1a; 后悔指数:五颗星。 复习越到最后&#xff0c;时间一天天变少&#xff0c;要复习的内容还有很多&#xff0c;很多人都后悔没有早早开始&#xff0c;总想着多给我两月一定会考上的。 担心时间不够用&#xff0c;那就努力利…...

【算法时间复杂度】学习记录

最近开算法课&#xff0c;开几篇文章记录一下算法的学习过程。 关于算法的重要性 学习计算机当程序员的话&#xff0c;在编程过程中是绕不开算法这个大矿山的&#xff0c;需要我们慢慢挖掘宝藏。 算法&#xff08;Algorithm&#xff09;是指用来操作数据、解决程序问题的一组…...

汽车车机芯片Linux系统内核编译问题总结

谈到车机,很多人会想到华为问界上装的大屏车机,号称车机的天花板,基于鸿蒙OS的,而今天谈到的车机芯片用的是linux内核Kernel,对于它的编译,很多人一时会觉得头大,的确如果工具不是很齐全,就会遇到这样那样的问题,但是过程都会有错误提示,按照错误提示基本可以解决,而…...

Android13 音量曲线调整

Android13 音量曲线调整 Android13 上配置文件的路径&#xff1a; /vendor/sprd/modules/audio/engineconfigurable_apm/工程目录/system/etc/audio_engine_config/audio_policy_engine_stream_volumes.xml /vendor/sprd/modules/audio/engineconfigurable_apm/工程目录/sys…...

OpenHarmony通过MQTT连接 “改版后的华为IoT平台”

一、前言 本篇文章我们使用的是BearPi-HM_Nano开发板:小熊派的主板+E53_IA1扩展板 源码用的是D6_iot_cloud_oc,点击下载BearPi-HM_Nano全量源码 那么为什么要写这篇呢? 前段时间看到OpenHarmony群里,经常有小伙伴问接入华为IoT平台的问题,他们无法正常连接到华为IoT平台等…...

SQS (Simple Queue Service)简介

mazon Simple Queue Service (SQS)是一种完全托管的消息队列服务&#xff0c;可以让你分离和扩展微服务、分布式系统和无服务应用程序。 在讲解SQS之前&#xff0c;首先让我们了解一下什么是消息队列。 消息队列 还是举一个电商的例子&#xff0c;一个用户在电商网站下单后付…...

高速PCB设计指南系列(三)

第一篇 高密度(HD)电路的设计 本文介绍&#xff0c;许多人把芯片规模的&#xff22;&#xff27;&#xff21;封装看作是由便携式电子产品所需的空间限制的一个可行的解决方案&#xff0c;它同时满足这些产品更高功能与性能的要求。为便携式产品的高密度电路设计应该为装配工艺…...

【C++】C++11——左右值|右值引用|移动语义|完美转发

文章目录一、左值与右值1.概念2.引用3.注意二、右值引用的意义1.左值引用意义2.右值引用和移动语义3.容器新增三、万能引用四、完美转发一、左值与右值 1.概念 左值是什么&#xff1f;右值是什么&#xff1f; 左值是一个表示数据的表达式&#xff08;如变量名或解引用的指针&…...

[ROC-RK3399-PC Pro] 手把手教你移植主线Buildroot(基于2023.02-rc3版本)

&#x1f347; 博主主页&#xff1a;Systemcall小酒屋&#x1f347; 博主简介&#xff1a;Neutionwei&#xff0c;C站嵌入式领域新星创作者之一&#xff0c;一枚热爱开源技术、喜欢分享技术心得的极客&#xff0c;注重简约风格&#xff0c;热衷于用简单的案例讲述复杂的技术&am…...

重温线性代数

前言 对于普通的数学工作者而言&#xff0c;掌握矩阵、线性空间的基本性质和用法比领会抽象的概念更实用。数学专业的同学需要全面深入学习近世代数的理论和演绎法则&#xff0c;例如模的概念和运算。 总之&#xff0c;我个人认为&#xff0c;不论是微积分、还是线性代数&…...

2023河北沃克HEGERLS甘肃金昌重型仓储项目案例|托盘式四向穿梭车智能密集存储系统在工业行业的创新应用

项目名称&#xff1a;自动化仓储托盘式四向穿梭车智能密集立体库项目 项目合作客户&#xff1a;甘肃省金昌市某集团企业 项目施工地域&#xff1a;甘肃省金昌市 设计与承建单位&#xff1a;河北沃克金属制品有限公司&#xff08;自主品牌&#xff1a;海格里斯HEGERLS&#x…...

软件测试的案例分析 - 闰年5

文章目的 显示不同的博客能获得多少博客质量分 &#xff08;这是关于博客质量分的测试 https://www.csdn.net/qc) 这个博客得了 83 分。怎么才能得到更多分数&#xff1f; 正文 我们谈了不少测试的名词, 软件是人写的, 测试计划和测试用例也是人写的, 人总会犯错误。错误发生…...

Linux文件基础I/O

文件IO文件的常识基础IO为什么要学习操作系统的文件操作C语言对于函数接口的使用接口函数介绍如何理解文件文件描述符重定向更新给模拟实现的shell增加重定向功能为什么linux下一切皆文件&#xff1f;文件的常识 1.空文件也要在磁盘占据空间 2.文件 内容 属性 3.文件操作 对…...

HTML看这一篇就够啦,HTML基础大全,可用于快速回顾知识,面试首选

HTML 1 基础 1.1 DOCTYPE <!DOCTYPE> 文档类型声明&#xff0c;作用就是告诉浏览器使用哪种HTML版本来显示网页。 <!DOCTYPE html> 这句代码的意思是: 当前页面采取的是 HTML5 版本来显示网页. 注意: 声明位于文档中的最前面的位置&#xff0c;处于 标签之前。 …...

Altium Designer(AD)软件使用记录05-PCB叠层设计

目录Altium Designer(AD)软件使用记录05-PCB叠层设计一、正片层和负片层的介绍1、正片层(Signal)2、负片层(Plane)3、内电层的分割实现二、正片层和负片层的内缩设计1、负片设置内缩20H原则2、正片铺铜设置内缩1、设置规则2、重新铺铜三、AD的层叠设计四、叠层设计需要注意的问…...

ArcGIS动态表格批量出图

一.产品介绍&#xff1a;ArcGIS动态表格扩展模块Mapping and Charting Solutions&#xff0c;可用于插入动态表格&#xff0c;与数据驱动结合&#xff0c;出图效率无敌。注&#xff1a;优先选择arcgis10.2.2。 二、下载连接&#xff1a; https://www.xsoftnet.com/share/a001CX…...

ChatGPT真神奇,但是也真焦虑

ChatGPT火爆ChatGPT的火爆程度不用说也知道。就目前来说&#xff0c;已经开始冲击各行业了&#xff0c;比如客服、智能助手、语言学习、自然语言处理等等等。。ChatGPT冲击冲击最高的可能就是中间这个段位的了。高段位无法取代&#xff0c;但是低段位&#xff0c;通过使用ChatG…...

mos管驱动与米勒平台介绍、消除

mos驱动设计 1.选择适当的驱动芯片 为了控制MOSFET&#xff0c;需要使用专门的驱动芯片。选择合适的芯片需要考虑MOSFET的电压和电流需求。常见的驱动芯片包括IR2110、IR2184、MIC4424等。 2.设计电路 在驱动电路中&#xff0c;需要加入一些电路元件来保证MOSFET的顺畅工作…...

20230311英语学习

Philosophy of Food: Guidelines for an Authentic Approach to Eating 饮食哲学&#xff1a;值得思考的问题 Whats Philosophical About Food? Philosophy of food finds its basis on the idea that food is a mirror.Eating mirrors the making of a self, that is, the …...

【面试题】Nginx面试题汇总(无解答)

什么是Nginx&#xff1f;谈谈个人都理解&#xff0c;项目中是否用到&#xff0c;为什么要用&#xff0c;有什么优点&#xff1f;为什么要用Nginx&#xff1f;为什么Nginx性能这么高&#xff1f;Nginx怎么处理请求的&#xff1f;什么是正向代理和反向代理&#xff1f;使用“反向…...

Java面试总结(六)

进程和线程的区别 根本区别&#xff1a; 进程时操作系统资源分配的基本单位&#xff0c;而线程是处理器任务调度和执行的基本单位。 资源开销&#xff1a; 每个进程都有自己独立的代码和数据空间&#xff08;程序上下文&#xff09;&#xff0c;进程之间的切换开销比较大&…...

Windows逆向安全(一)C与汇编的关系

前言 逆向是一种新型的思维模式也是软件开发领域中极为重要的技术&#xff0c;涵盖各种维度去深挖软件架构的本质和操作系统原理&#xff0c;学习逆向后可以在各领域中发挥至关重要的作用&#xff0c;其中包括黑灰色&#xff0c;安全开发&#xff0c;客户端安全&#xff0c;物…...