Java-Collections、Map

目錄

1.可變參數

2.Collections工具類

?

不同集合類型的排序方法比較

3.斗地主游戲

4.Map集合

4.1 Map集合概述

4.2 Map集合的常用方法

?4.3 Map集合的遍歷方式

?4.4 Map集合案例—統計投票人數

4.5?HashMap

?4.6 LinkedHashMap

4.7 TreeMap

5.集合的嵌套


1.可變參數

import java.util.Arrays;public class Test {public static void main(String[] args) {// 目標:掌握可變參數的使用。// 需求:求任意個整數數據的和.sum(); // 可以不傳輸參數sum(10); // 可以傳一個參數sum(20, 15, 32,100); // 可以傳多個參數sum(new int[]{10, 20, 30, 40}); // 可以傳一個數組}// 作用:接收數據非常靈活// 注意事項://    可變參數在形參列表中只能出現一個!//    可變參數必須放到形參列表的最后面!public static void sum(int...nums){// 本質:可變參數在方法內部本質就是一個數組。System.out.println("個數:" + nums.length);System.out.println("內容:" + Arrays.toString(nums));}
}

2.Collections工具類

package com.itheima.d2_collections;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;/*** 目標:掌握Collections集合工具類的使用。*/
public class CollectionsTest1 {public static void main(String[] args) {// 1、public static <T> boolean addAll(Collection<? super T> c, T...elements):為集合批量添加數據List<String> names = new ArrayList<>();Collections.addAll(names, "張無忌", "趙敏", "小昭", "殷素素");System.out.println(names);// 2、public static void shuffle(List<?> list):打亂List集合中的元素順序Collections.shuffle(names);System.out.println(names);// 3、 public static <T> void sort(List<T> list):對List集合中的元素進行升序排序。List<Student> students = new ArrayList<>();Student s1 = new Student("趙敏", 19, 169.5);Student s2 = new Student("周芷若", 18, 171.5);Student s3 = new Student("周芷若", 18, 171.5);Student s4 = new Student("小昭", 17, 165.5);Collections.addAll(students, s1, s2, s3, s4);// 方式一:讓對象的類實現Comparable接口,從寫compare方法,指定大小比較規則Collections.sort(students);System.out.println(students);// 4、public static <T> void sort(List<T> list, Comparator<? super T> c):// 對List集合中元素,按照比較器對象指定的規則進行排序// 方式二:指定Comparator比較器對象,再指定比較規則。Collections.sort(students, ((o1, o2) -> Double.compare(o2.getHeight(), o1.getHeight())));System.out.println(students);}
}

?List集合是結合Collections工具類提供的sort方法進行比較,并不是自己帶的比較器

有以下兩種方式:

而TreeSet是自己帶的比較器,并不是調用其他工具類的方法

天然有序,創建時指定排序規則

//        Set<Girl> set = new TreeSet<>(new Comparator<Girl>() {
//            @Override
//            public int compare(Girl o1, Girl o2) {
//                return Double.compare(o2.getHeight(),o1.getHeight());
//            }
//        });//排序,不重復,無索引//簡化代碼
Set<Girl> set = new TreeSet<>((o1, o2) -> Double.compare(o2.getHeight(),o1.getHeight()));

在Java中,對集合中的對象進行排序有兩種方式

  • 實現比較器(Comparator),用匿名內部類來實現

eg:

public class Person implements Comparable<Person> {private int age;// 構造器、getter/setter略@Overridepublic int compareTo(Person other) {return this.age - other.age; // 按年齡升序排序}
}
  • 讓類實現Comparable接口來實現

eg:

// 按年齡降序排序
Comparator<Person> ageDescComparator = (p1, p2) -> p2.getAge() - p1.getAge();

不同集合類型的排序方法比較

  • List集合(如ArrayList、LinkedList)

1.自然排序(在對象類中實現Comparable<對象類型>)

List<Person> personList = new ArrayList<>();
// 添加元素...
Collections.sort(personList); // 按Person的compareTo方法排序

2.定制排序(用匿名內部類寫Comparator)

// 按姓名長度升序排序
Collections.sort(personList, (p1, p2) -> p1.getName().length() - p2.getName().length());// 多條件排序:先按年齡升序,年齡相同則按姓名降序
Collections.sort(personList, (p1, p2) -> {if (p1.getAge() != p2.getAge()) {return p1.getAge() - p2.getAge();} else {return p2.getName().compareTo(p1.getName());}
});
  • Array(數組)

1.基本類型數組(如int[ ]):直接使用Arrays.sort( )

int[] nums = {5, 2, 8, 1};
Arrays.sort(nums); // 結果:[1, 2, 5, 8]

?2.對象數組(如Person[ ]):

Person[] persons = new Person[3];
// 初始化數組...
Arrays.sort(persons, (p1, p2) -> p1.getName().compareTo(p2.getName())); // 按姓名升序
  • Set集合(如TreeSet、HashSet)

1.TreeSet:天然有序,創建時指定排血規則

// 按年齡升序排序
Set<Person> personSet = new TreeSet<>((p1, p2) -> p1.getAge() - p2.getAge());// 或在創建時傳入Comparator
Set<Person> personSet = new TreeSet<>(Comparator.comparing(Person::getAge));

?2.HashSet:無序,若需排序需先轉為 List 再排序

Set<Person> hashSet = new HashSet<>();
// 添加元素...
List<Person> sortedList = hashSet.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());

3.斗地主游戲

Cards對象用來存儲每一張牌的內容

package com.itheima.d3_collection_test;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;// Lombok : 使用注解簡化get set 有參 無參構造器的寫法
// IDEA >= 2022
// Lombok 是 30版本 不要用28
@Data
@NoArgsConstructor //無參構造器
@AllArgsConstructor //有參構造器
public class Card {private String number;private String color;private int size;@Overridepublic String toString() {return number + color;}
}
package com.itheima.d3_collection_test;import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;//房間對象
public class Room {//1.準備一副牌private ArrayList<Card> allCards = new ArrayList<>();//2.初始化54張牌,用實例代碼塊初始化,創建房間對象時,為allCards集合初始化54張牌{//3.準備點數 : 個數確定,類型確定String[] numbers = {"3","4","5","6","7","8","9","10","J","Q","K","A","2"};//4.準備花色 : 個數確定,類型確定String[] colors = {"?", "?", "?", "?"};//5.準備組裝每一張牌對象int size = 0;for (String number : numbers) {size++;for (String color : colors) {//6.創建對象封裝這張牌數據Card c = new Card(number,color,size);//7.加入到集合中去allCards.add(c);}}//8.單獨加入大小王allCards.add(new Card("","小王",++size));allCards.add(new Card("","大王",++size));System.out.println("新牌是:" + allCards);}public void start() {//9.洗牌Collections.shuffle(allCards);System.out.println("洗牌后" + allCards);//10.發牌//定義三個玩家。List<Card> lhc = new ArrayList<>();List<Card> ryy = new ArrayList<>();List<Card> dfbb = new ArrayList<>();//發出去51張//allCards = [9?, K?, 8?, 2?, Q?, 9?, 8?, 6?, 3?, 7?, 4?//            0    1   2   3   4   5   6...輪詢算法for (int i = 0; i < allCards.size() - 3; i++) {Card c = allCards.get(i);if(i % 3 == 0){//請lhc接牌lhc.add(c);} else if (i % 3 == 1) {//請ryy接牌ryy.add(c);}else if (i % 3 == 2){//請dfbb接牌dfbb.add(c);}}//拿到最后三張底牌://subList截取子集合到新的集合中去List<Card> lastThreeCards = allCards.subList(allCards.size() - 3 ,allCards.size());//搶地主ryy.addAll(lastThreeCards);//11.對牌排序sortCards(lhc);sortCards(ryy);sortCards(dfbb);//12.看牌System.out.println("lhc" + lhc);System.out.println("ryy" + ryy);System.out.println("dfbb" + dfbb);}private void sortCards(List<Card> Cards) {Collections.sort(Cards, new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {return o2.getSize() - o1.getSize();}});}
}
package com.itheima.d3_collection_test;public class Test {public static void main(String[] args) {// 目標:完成斗地主案例的實現。'// "3","4","5","6","7","8","9","10","J","Q","K","A","2"// "?", "?", "?", "?"// 1、每張牌是一個對象,設計一個牌類。// 2、設計一個房間類,用于創建房間對象,開啟游戲。Room r= new Room();r.start();}
}

4.Map集合

4.1 Map集合概述

?注意!!!集合和泛型都不支持基本類型,可以寫包裝類

package com.itheima.d4_map;import java.util.HashMap;
import java.util.Map;public class MapDemo1 {public static void main(String[] args) {// 目標:掌握Map集合的特點。// Map體系整體特點:HashMap : 按照鍵,無序,不重復,無索引。值不做要求,鍵和值都可以是nullMap<String, Integer> map = new HashMap<>(); // 多態 一行經典代碼map.put("華為手表", 31);map.put("iphone15", 1);map.put("mete60", 10);map.put("Java入門到跑路", 2);map.put("iphone15", 31); // 后面重復的鍵會覆蓋前面整個數據!map.put("娃娃", 1);map.put("雨傘", 10);map.put(null, null);// {Java入門到跑路=2, null=null, iphone15=31, 雨傘=10, mete60=10, 華為手表=31, 娃娃=1}System.out.println(map);}
}

?Map集合(如HashMap)的“無序”是指元素的存儲順序與插入順序不一致:

  • 當向 Map 中添加鍵值對時,元素的存儲位置由鍵的哈希值決定(通過哈希函數計算存儲位置),而非插入順序。
  • 遍歷時,元素的輸出順序可能與插入順序不同,甚至多次遍歷的順序也可能不一致。

4.2 Map集合的常用方法

為什么要先學習Map的常用方法?

  • Map是雙列集合的祖宗,它的功能是全部雙列集合都可以繼承過來使用

package com.itheima.d4_map;import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapDemo2 {public static void main(String[] args) {// 目標:掌握Map集合的常用API(重點)Map<String, Integer> map = new HashMap<>();map.put("手表" ,2);map.put("iphone" ,31);map.put("huawei" ,365);map.put("iphone" ,1);map.put("娃娃", 31);map.put("Java入門",1);map.put(null,null);System.out.println(map);// map = {null=null, 手表=2, huawei=365, Java入門=1, 娃娃=31, iphone=1}// 1、獲取集合的大小(元素個數)System.out.println(map.size()); // 6// 2、清空集合// map.clear();System.out.println(map);// 3、判斷集合是否為空System.out.println(map.isEmpty());// 4、根據鍵獲取對應的值(重點)System.out.println(map.get("手表"));System.out.println(map.get("手表2"));  // 如果沒有這個鍵,返回null// 5、根據鍵刪除整個數據,返回刪除數據對應的值。(重點)System.out.println(map.remove("娃娃"));System.out.println(map);// 6、判斷是否包含某個鍵(重點)'// map = {null=null, 手表=2, huawei=365, Java入門=1,iphone=1}System.out.println(map.containsKey("娃娃")); // falseSystem.out.println(map.containsKey("huawei")); // trueSystem.out.println(map.containsKey(null)); // trueSystem.out.println(map.containsKey("手表2")); // false// 7、判斷是否包含某個值// map = {null=null, 手表=2, huawei=365, Java入門=1,iphone=1}System.out.println(map.containsValue(1)); // trueSystem.out.println(map.containsValue(365)); // trueSystem.out.println(map.containsValue("1")); // false// 8、獲取Map集合的全部鍵,到一個Set集合中返回的// map = {null=null, 手表=2, huawei=365, Java入門=1,iphone=1}// public Set<K> keySet():Set<String> keys = map.keySet();for (String key : keys) {System.out.println(key);}// 9、獲取Map集合的全部值:到一個Collection集合中返回的。Collection<Integer> values = map.values();for (Integer value : values) {System.out.println(value);}}
}

?4.3 Map集合的遍歷方式

package com.itheima.d5_map_travesal;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapDemo1 {public static void main(String[] args) {// 目標:掌握Map集合的遍歷方式一:鍵找值Map<String, Integer> map = new HashMap<>(); // 一行經典代碼map.put("iphone", 6);map.put("小米", 3);map.put("huawei", 3);map.put("諾基亞", 31);System.out.println(map);  // {huawei=3, 諾基亞=31, iphone=6, 小米=3}// 1、獲取map集合的全部鍵Set<String> keys = map.keySet();// 2、根據鍵提取值for (String key : keys) {Integer value = map.get(key);System.out.println(key + "====>" + value);}}
}

?

package com.itheima.d5_map_travesal;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapDemo2 {public static void main(String[] args) {// 目標:掌握Map集合的遍歷方式二:鍵值對遍歷(難度大點)Map<String, Integer> map = new HashMap<>();map.put("蜘蛛精", 1000);map.put("小龍女", 23);map.put("木婉清", 31);map.put("黃蓉", 35);System.out.println(map);// map = {蜘蛛精=1000, 小龍女=23, 黃蓉=35, 木婉清=31}// 1、一開始是想通過增強for直接遍歷Map集合,但是無法遍歷,因為鍵值對直接來看是不存在數據類型的。
//        for (元素類型 變量: map){
//
//        }// 2、調用Map集合的一個方法,把Map集合轉換成Set集合來遍歷/***    map = {蜘蛛精=1000, 小龍女=23, 黃蓉=35, 木婉清=31}*    ↓*    map.entrySet()*    ↓*    Set<Map.Entry<String, Integer>> entries = [(蜘蛛精=1000), (小龍女=23), (黃蓉=35), (木婉清=31)]*                                                    entry*/Set<Map.Entry<String, Integer>> entries = map.entrySet();for (Map.Entry<String, Integer> entry : entries) {String key = entry.getKey();Integer value = entry.getValue();System.out.println(key + " ===> " + value);}}

?

package com.itheima.d5_map_travesal;import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;public class MapDemo3 {public static void main(String[] args) {// 目標:掌握Map集合的遍歷方式三:LambdaMap<String, Integer> map = new HashMap<>();map.put("蜘蛛精", 1000);map.put("小龍女", 23);map.put("木婉清", 31);map.put("黃蓉", 35);System.out.println(map);// map = {蜘蛛精=1000, 小龍女=23, 黃蓉=35, 木婉清=31}map.forEach(new BiConsumer<String, Integer>() {@Overridepublic void accept(String key, Integer value) {System.out.println(key + "===>" + value);}});map.forEach((key, value) -> {System.out.println(key + "===>" + value);});}
}

?4.4 Map集合案例—統計投票人數

需要做一 一對應的數據時,我們就優先考慮用Map集合來做

package com.itheima.d5_map_travesal;import java.util.*;public class MapTest5 {//需求:統計各個景點想去的人數public static void main(String[] args) {//1.把80個學生可選擇的景點造出來String[] locations = {"玉龍雪山", "伶仃島", "三亞", "泰國"};//2.定義一個List集合,來存儲80個學生所挑選的想去的景點List<String> data = new ArrayList<>();//3.用隨機數來隨機數組里的景點,模擬80個學生進行選擇Random r = new Random();//4.遍歷80個學生,每一次都像List集合中存入想去的景點for (int i = 0; i < 80; i++) {data.add(locations[r.nextInt(locations.length)]);}System.out.println(data);//5.定義一個Map集合,鍵存儲景點,值存儲想去的人數Map<String, Integer> map = new HashMap<>();//6.遍歷data,向map中存入數據for (String s : data) {//7.判斷map中存在data當前所遍歷的景點鍵if (map.containsKey(s)) {//如果之前出現過,map值+1map.put(s,map.get(s) + 1);}else {//第一次添加map.put(s,1);}}map.forEach((s,n) -> System.out.println(s + "選擇的人數是:" + n));}
}

4.5?HashMap

HasSet的底層就是基于HashMap實現的,HashSet中只展示鍵,不展示值

每次擴容為原來的兩倍,關于哈希表的具體解釋可以參考JAVA-異常、Collection-CSDN博客

package com.itheima.d6_map_impl;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data // Data自帶了無參 + get + set + toString + hashCode + equals
@NoArgsConstructor
@AllArgsConstructor//寫了有參之后data中的無參就會消失,所以寫了有參就必須寫無參
public class Movie implements Comparable<Movie>{private String name;private double score;private String actor;}
package com.itheima.d6_map_impl;import java.util.HashMap;
import java.util.Map;public class MapTest1 {public static void main(String[] args) {// 目標:掌握Map集合(鍵)去重復的機制。Map<Movie, String> map = new HashMap<>();map.put(new Movie("摔跤吧,爸爸", 9.5, "阿米爾汗"), "19:00");map.put(new Movie("三傻寶萊塢", 8.5, "阿米爾汗2"), "20:50");map.put(new Movie("三傻寶萊塢", 8.5, "阿米爾汗2"), "21:50");map.put(new Movie("阿甘正傳", 7.5, "湯姆漢克斯"), "21:00");System.out.println(map);}
}

?4.6 LinkedHashMap

類似于LinkedHashSet

4.7 TreeMap

package com.itheima.d6_map_impl;import java.util.*;public class MapTest3 {public static void main(String[] args) {// 目標:了解TreeMap集合:按照你鍵升序排序,不重復,無索引。// 方式二:TreeMap集合肯定可以自帶比較器對象指定比較規則Map<Movie, String> map = new TreeMap<>((m1, m2) -> Double.compare(m2.getScore(), m1.getScore()));// 方式一:Movie類實現Comparable接口指定比較規則map.put(new Movie("摔跤吧,爸爸", 9.5, "阿米爾汗"), "19:00");map.put(new Movie("三傻寶萊塢", 8.5, "阿米爾汗2"), "20:50");map.put(new Movie("三傻寶萊塢", 8.5, "阿米爾汗2"), "21:50");map.put(new Movie("阿甘正傳", 7.5, "湯姆漢克斯"), "21:00");System.out.println(map);}
}
package com.itheima.d6_map_impl;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data // Data自帶了無參 + get + set + toString + hashCode + equals
@NoArgsConstructor
@AllArgsConstructor//寫了有參之后data中的無參就會消失,所以寫了有參就必須寫無參
public class Movie implements Comparable<Movie>{private String name;private double score;private String actor;@Overridepublic int compareTo(Movie o) {return Double.compare(this.score, o.score);}
}

5.集合的嵌套

package com.itheima.d6_map_impl;import java.util.*;public class MapTest4 {public static void main(String[] args) {// 目標:掌握集合的嵌套(重點)// 1、定義一個Map集合存儲全部省份和城市信息。Map<String, List<String>> provinces = new HashMap<>();// 2、存入省份信息List<String> cities1 = new ArrayList<>();Collections.addAll(cities1, "南京市", "揚州市", "蘇州市", "無錫市", "常州市");provinces.put("江蘇省", cities1);List<String> cities2 = new ArrayList<>();Collections.addAll(cities2, "武漢市", "襄陽市", "孝感市", "十堰市", "宜昌市");provinces.put("湖北省", cities2);List<String> cities3 = new ArrayList<>();Collections.addAll(cities3, "石家莊市", "唐山市", "邢臺市", "保定市", "張家口市");provinces.put("河北省", cities3);System.out.println(provinces);List<String> hbcities = provinces.get("湖北省");for (String hbcity : hbcities) {System.out.println(hbcity);}}
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/88514.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/88514.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/88514.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開源界迎來重磅核彈!月之暗面開源了自家最新模型 K2

1. 模型簡介 Kimi K2 是一款尖端專家混合&#xff08;MoE&#xff09;語言模型&#xff0c;激活參數量達320億&#xff0c;總參數量突破1萬億。該模型采用Muon優化器訓練&#xff0c;在前沿知識、推理和編程任務中展現出卓越性能&#xff0c;同時針對智能體能力進行了精細化優…

Grok-4 發布會圖文總結

文章目錄00:00 - Grok-4&#xff1a;以“全球最智能 AI”之名突破性登場06:41 - 推理能力的大幅飛躍&#xff1a;100 倍訓練量鑄就的“博士級”大腦13:25 - 工具使用能力的革新&#xff1a;從“原始”到深度整合20:06 - 直面強化學習的挑戰與 AI 的終極測試26:45 - 應用演示&am…

AI產品經理面試寶典第1天:機器學習核心算法全景解析

面試官:請解釋什么是監督學習?能否用生活案例說明其運作邏輯? 監督學習如同教孩子識字的過程。父母指著"蘋果"圖片反復說"這是蘋果"(帶標簽的訓練數據),孩子逐漸建立"紅色圓形水果=蘋果"的認知模型(算法生成)。當孩子看到新圖片時,模型…

前端開發技術棧概覽

前端開發技術棧概覽 前端開發是創建Web頁面或app等前端界面給用戶的過程&#xff0c;從簡單的靜態頁面到復雜的單頁應用(SPA)&#xff0c;前端技術棧經歷了快速的演進。以下是前端開發所需掌握的核心技術分類及相關知識點&#xff1a; 1. 基礎層&#xff1a;HTML、CSS、JavaScr…

詳解Kafka通過冪等性實現分區消息不重復的機制

一、核心機制&#xff1a;PID與序列號1. Producer ID (PID)唯一標識&#xff1a;每個生產者實例啟動時&#xff0c;由Kafka Broker分配一個全局唯一的PID&#xff0c;用于標識消息來源。持久化存儲&#xff1a;PID由Broker持久化保存&#xff0c;確保生產者重啟后仍能追蹤歷史狀…

壓縮包方式在centos7版本上安裝mysql8.0

使用tar命令解壓 tar -zxvf mysql-8.0.32-el7-x86_64.tar.gz -C /usr/local/到/usr/local/修改解壓后的文件名為mysql 創建mysql用戶組和用戶&#xff0c;自己在mysql下面創建data目錄存儲信息&#xff0c;把權限交給mysql這個用戶 groupadd mysql useradd -r -g mysql mysql c…

使用ansible給被管理節點安裝docker

在跳板機上安裝ansible,再通過ansible的playbook,給被管理節點安裝docker。 跳板機配置 實驗環境 華為云上按需開兩臺2核2G的Ubuntu的ECS&#xff1b;2臺公網IP為5Mbit/s&#xff0c;按需按流量&#xff1b;2臺服務器在一個子網內;跳板機和被管理節點主機分別掛不通的安全組 在…

《Java EE與中間件》實驗三 基于Spring Boot框架的購物車

目 錄 一、實驗目的和要求 二、實驗實現思路及步驟 1、實驗思路 2、實驗步驟 3、實驗方案 三、主要開發工具 四、實驗效果及實現代碼 1、購物車數據庫構建實現 &#xff08;1&#xff09;建立javaee-project數據庫 &#xff08;2&#xff09;建立t_cart數據表 &…

DAS3D: Dual-modality Anomaly Synthesis for 3D Anomaly Detection 論文精讀

題目&#xff1a;DAS3D: Dual-modality Anomaly Synthesis for 3D Anomaly Detection 題目&#xff1a;DAS3D&#xff1a;用于三維異常檢測的雙模態異常合成 論文地址&#xff1a;ECCVW 2024 2410 Dual-modality 雙模態 Anomaly Synthesis 異常合成 for 3D Anomaly Detection…

EasyCVR視頻匯聚平臺國標接入設備TCP主動播放失敗排查指南

部分客戶現場的下級平臺通過國標級聯接入安防監控系統EasyCVR后&#xff0c;只能通過TCP主動的播放方式進行播放&#xff08;并不是所有下級平臺都支持tcp主動播放&#xff0c;模式需下級平臺支持&#xff09;&#xff0c;但是有些平臺剛接入的時候發現不能播放。核心原因分析&…

linux打包指令和移動指令

在Linux中&#xff0c;常用的文件夾打包命令是 tar&#xff0c;它可以將文件夾壓縮打包成 .tar、.tar.gz、.tar.bz2 等格式的文件。以下是具體用法&#xff1a; 1. 基礎打包&#xff08;不壓縮&#xff0c;生成 .tar 文件&#xff09; 將文件夾 folder 打包為 folder.tar&#…

神經符號AI:結合深度學習和符號邏輯的下一代AI

神經符號AI&#xff1a;結合深度學習和符號邏輯的下一代AI當AI醫生解釋診斷時&#xff0c;它不僅能指出醫學影像中的異常像素模式&#xff0c;還能引用臨床指南中的第三條第二款&#xff0c;推演病理發展的邏輯鏈條——這正是神經符號AI賦予機器的“理性之光”。2025年初&#…

SpringBoot JWT

jsonwebtoken 引依賴 <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.12.3</version></dependency> 測試一下&#xff0c;jwt是2個帶逗號的3段字符串 官網參考&#xff1a;JSON …

讀取QPS 10萬,寫入QPS 1000,如何設計系統架構?

你是否也曾深陷在臃腫的領域模型&#xff08;Domain Model&#xff09;的泥潭&#xff0c;一個 User 或 Order 實體類&#xff0c;既要處理復雜的業務邏輯和數據校驗&#xff0c;又要承載各種為前端展示而生的DTO轉換&#xff0c;導致模型越來越胖&#xff0c;讀寫性能相互掣肘…

UE5 Rotate 3 Axis In One Material

首先沒有用旋轉矩陣&#xff0c;我用過旋轉矩陣&#xff0c;傳進去的角度旋轉的角度和歐拉角傳進去角度旋轉出來的不一樣&#xff0c;就沒有用最后用的RotateAboutAxis&#xff0c;這個玩意兒研究老半天&#xff0c;只能轉一個軸&#xff0c;角度和歐拉角的一樣的最后研究出Rot…

計算機網絡實驗——訪問H3C網絡設備

一、實驗目的1. 熟悉H3C路由器的開機界面&#xff1b;2. 通過Console端口實現對上電的H3C路由器的第一次本地訪問&#xff1b;3. 掌握H3C設備命名等幾個常用指令&#xff1b;4. 掌握如何將H3C設備配置為Telnet服務器&#xff1b;5. 掌握如何將H3C設備配置為Telnet客戶端并實現訪…

【C語言】學習過程教訓與經驗雜談:思想準備、知識回顧(四)

&#x1f525;個人主頁&#xff1a;艾莉絲努力練劍 ?專欄傳送門&#xff1a;《C語言》、《數據結構與算法》、C語言刷題12天IO強訓、LeetCode代碼強化刷題 &#x1f349;學習方向&#xff1a;C/C方向 ??人生格言&#xff1a;為天地立心&#xff0c;為生民立命&#xff0c;為…

Vim 指令

Vim 是一款功能強大但學習曲線陡峭的文本編輯器&#xff0c;核心在于其模式化操作。掌握常用指令能極大提升效率。以下是指令分類整理&#xff1a;一、核心模式切換 (必須掌握&#xff01;)i&#xff1a;在光標前進入 插入模式 (Insert Mode)a&#xff1a;在光標后進入 插入模式…

vue2中使用xgplayer播放流視頻

1、官網 2、安裝后無法播放時&#xff0c;經測試&#xff0c;需要降低版本 "xgplayer-hls": "2.2.2","xgplayer": "2.31.6"改為以上版本可以正常播放 3、完整使用 &#xff08;1&#xff09;引入 import xgplayer import hlsjsPlayer…

Jmeter進階篇(35)完美解決Jmeter轉換HTML報告報錯“Begin size 0 is not equal to fixed size 5”

今天博主在使用Jmeter運行完壓測,使用生成的csv文件,運行以下命令: C:\apache-jmeter-5.2.1\bin>jmeter -g C:\res.csv -o C:\report生成HTML報告時,發現報錯“Begin size 0 is not equal to fixed size 5”。 問題原因 原因是我:本地用的是JDK17,但Jmeter5.2.1僅支…