Java_Map

news2024/10/6 6:49:49

字典(Map)

概述

在这里插入图片描述

HashMap

定义方法

public static void main(String[] args) {
		// HashMap<Integer, String> Map = new HashMap<Integer, String>(); // 定义方法一
		Map<Integer, String> map = new HashMap<Integer, String>(); // 定义方法二
		// map没有add方法
		map.put(1, "LiHua");
		map.put(2, "zhanghua");
		map.put(3, "huanghuan");
		System.out.println(map);
		/*{1=LiHua, 2=zhanghua, 3=huanghuan}*/
	}

常用方法

在这里插入图片描述

put()与remove()

public static void main(String[] args) {
		// HashMap<Integer, String> Map = new HashMap<Integer, String>(); // 定义方法一
		Map<Integer, String> map = new HashMap<Integer, String>();
		// map没有add方法
		map.put(1, "LiHua");
		map.put(2, "zhanghua");
		map.put(3, "huanghuan");
		System.out.println(map);
		/*{1=LiHua, 2=zhanghua, 3=huanghuan}*/
		map.remove(1);
		map.remove(100);
		System.out.println(map);
		/*{2=zhanghua, 3=huanghuan}*/		
	}

containsKey()与containsValue()

public static void main(String[] args) {
		// HashMap<Integer, String> Map = new HashMap<Integer, String>(); // 定义方法一
		Map<Integer, String> map = new HashMap<Integer, String>();
		// map没有add方法
		map.put(1, "LiHua");
		map.put(2, "zhanghua");
		map.put(3, "huanghuan");
		System.out.println(map);
		/*{1=LiHua, 2=zhanghua, 3=huanghuan}*/
		
		System.out.println(map.containsKey(2));
		/*true*/
		
		map.remove(1);
		map.remove(100);
		System.out.println(map);
		/*{2=zhanghua, 3=huanghuan}*/		
		System.out.println(map.containsValue("LiHua"));
		/*false*/
	}

V get(Key) 与 V getOrDefault(Key, DefaultValue)

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		// get() 方法通过key值来获取value值
		System.out.println(map.get(1));/*Lihua*/
		
		// getOrDefault()  如果没有找到key 那么返回的value值就用第二个参数代替
		System.out.println(map.getOrDefault(4, "hahaha"));/*hahaha*/
	}

Set keySet

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		// keySet() 返回key值的集合
		System.out.println(map.keySet());
		/*[1, 2, 3]*/
	}

Collection values() 返回此字典中包含的Collection视图

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(50, "zhangsan");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		System.out.println(tmap.values());
		/*{1=dagu, 2=xiaolong, 45=xidong, 50=zhangsan, 66=zhangming, 100=liming}*/
		/*[dagu, xiaolong, xidong, zhangsan, zhangming, liming]*/
	}

**V remove(Oject key) ** 返回删除的key对应的value

boolean remove(Object key, Object value) 删除成功的话返回true

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		System.out.println(map.remove(1));
		/*Lihua*/
		System.out.println(map.remove(1));
		/*null*/
		System.out.println(map.remove(2, "Zhanghua"));
		/*true*/
		System.out.println(map.remove(2, "Zhanghua"));
		/*false*/
	}

V replace(K key, V value) 把key对应的value换成新的

boolean replace(K key, V oldValue, V newValue)

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		System.out.println(map.replace(1, "xiaolizi")); 
		/*Lihua*/
		System.out.println(map);
		/*{1=xiaolizi, 2=Zhanghua, 3=xiaozhang}*/
		
		System.out.println(map.replace(2, "Zhanghua", "daxiong")); 
		/*true*/
		System.out.println(map.replace(2, "Zhanghua", "daxiong")); 
		/*false*/  // 这里这个value指定错误 然后就不可以换成功
		System.out.println(map);
		/*{1=xiaolizi, 2=daxiong, 3=xiaozhang}*/
	}

Set<Map.Entry<K,V>> entrySet() 返回的是这个字典对应的键值对的集合

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		System.out.println(map.entrySet()); // 这里返回的是一个Set集合
		// 类型是Set<Map.Entry<K, V>>
		/*[1=Lihua, 2=Zhanghua, 3=xiaozhang]*/
	}

遍历方法

方式一

在这里插入图片描述

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		for(Integer i : map.keySet())
		{
			System.out.println(i + " " + map.get(i));
		}		
		/*
		   1 Lihua
		   2 Zhanghua
           3 xiaozhang
		 */
	}

方式二

在这里插入图片描述

public static void main(String[] args) {
		HashMap<Integer, String> map = new HashMap<Integer, String>();
		map.put(1, "Lihua");
		map.put(2, "Zhanghua");
		map.put(3, "xiaozhang");
		
		for (Map.Entry<Integer, String> me: map.entrySet())
		{
			System.out.println(me.getKey() + " " + me.getValue());			
		}
		/*
		 * 1 Lihua
		   2 Zhanghua
           3 xiaozhang
		 * */
	}

LinkedHashMap

在这里插入图片描述

定义方法

public static void main(String[] args) {
		Map<Integer, String> linkmap = new LinkedHashMap<>();
		linkmap.put(1, "lihua");
		linkmap.put(2, "zhanghua");
		linkmap.put(3, "xiaobizhaizi");	
		System.out.println(linkmap);
		/*{1=lihua, 2=zhanghua, 3=xiaobizhaizi}*/
	}

常用方法

和HashMap一样

遍历方法

和HashMap一样

TreeMap

在这里插入图片描述

定义方法

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		// 默认按照key升序排列
		System.out.println(tmap);
		/*{1=dagu, 2=xiaolong, 100=liming}*/
	}

常用方法

**在HashMap的基础上多一些 **

Map.Entry<K, V> firstEntry()

K firstKey()

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		System.out.println(tmap.firstEntry()); // 返回最小key对应的映射
		/*1=dagu*/
		System.out.println(tmap.firstKey());  // 返回第一个key
		/*1*/
	}

Map.Entry<K, V> floorEntry(K key) 返回小于或等于指定key的最大key的映射

K floorKey(K key) 返回小于或等于指定key的最大的key

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		System.out.println(tmap.floorEntry(3)); 
		/*2=xiaolong*/
		System.out.println(tmap.floorKey(3));
		/*2*/
	}

Map.Entry<K, V> ceilingEntry(K key) 返回大于或等于指定key的key的映射

K ceilingKey(K key) 返回大于或等于指定key的key

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		System.out.println(tmap.ceilingEntry(3));
		/*45=xidong*/
		System.out.println(tmap.ceilingKey(3));
		/*45*/
	}

Map.Entry<K,V> firstEntry() 返回第一个key对应的映射

K firstKey() 返回第一个key对应的value

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		System.out.println(tmap.firstEntry());
		/*1=dagu*/
		System.out.println(tmap.firstKey());
		/*1*/
	}

Map.Entry<K,V> lastEntry() 返回最后一个key对应的映射

K lastKey() 返回最后一个key对应的value

	public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		System.out.println(tmap.lastEntry());
		/*100=liming*/
		System.out.println(tmap.lastKey());
		/*100*/
	}

SortedMap<K,V> headMap(K toKey) 放回此字典的部分视图 其中key值严格小于toKey的部分

NavigableMap<K,V> headMap<K toKey,boolean inclusive> inclusive为true表示有等于的情况

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(66, "zhangming");
		System.out.println(tmap.headMap(45));
		/*{1=dagu, 2=xiaolong}*/
		System.out.println(tmap.headMap(45, true));  // 包含等于的情况
		/*{1=dagu, 2=xiaolong, 45=xidong}*/
	}

SortedMap<K,V> tailMap(K fromKey) 返回此字典的部分视图 其key大于等于 fromKey

NavigableMap<K,V> tailMap(K fromKey, boolean inclusive) 这里的inclusive表示是否包含边界 为true包含

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(66, "zhangming");
		System.out.println(tmap.tailMap(2));
		/*{2=xiaolong, 45=xidong, 66=zhangming, 100=liming}*/
		System.out.println(tmap.tailMap(2, false));
		/*{45=xidong, 66=zhangming, 100=liming}*/
	}

Map.Entry<K,V> higherEntry(K key) 返回大于指定key的最小的一个 如果没有返回null

K higherKey(K key) 返回大于指定key的最小一个key 如果没有返回null

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(50, "zhangsan");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		/*{1=dagu, 2=xiaolong, 45=xidong, 50=zhangsan, 66=zhangming, 100=liming}*/
		System.out.println(tmap.higherEntry(45));  // 返回大于指定key的最小的一个映射
		/*50=zhangsan*/
		System.out.println(tmap.higherKey(45));	// 返回大于指定key的最小的一个key
		/*50*/
	}

Map.Entry<K,V> lowerEntry(K key) 返回小于这个key的最大的一个映射

K lowerKey(K key) 返回小于这个key的最大一个key

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(50, "zhangsan");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		/*{1=dagu, 2=xiaolong, 45=xidong, 50=zhangsan, 66=zhangming, 100=liming}*/
		System.out.println(tmap.lowerEntry(50));  // 返回小于这个key的最大的一个映射
		/*45=xidong*/
		System.out.println(tmap.lowerKey(50));  // 返回小于这个key的最大一个key
		/*45*/
	}

Map.Entry<K,V> pollFirstEntry() 删除并返回此字典的第一个key对应的映射

Map.Entry<K,V> pollLastEntry() 删除并返回此字典的最后一个key对应的映射

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(66, "zhangming");
		System.out.println(tmap.pollFirstEntry());
		/*1=dagu*/
		System.out.println(tmap);
		/*{2=xiaolong, 45=xidong, 66=zhangming, 100=liming}*/
		System.out.println(tmap.pollLastEntry());
		/*100=liming*/
		System.out.println(tmap);
		/*{2=xiaolong, 45=xidong, 66=zhangming}*/
	}

V remove(Object key) 从此TreeMap中删除此key对应的映射(如果存在)

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		/*{1=dagu, 2=xiaolong, 45=xidong, 66=zhangming, 100=liming}*/
		tmap.remove(2);
		System.out.println(tmap);
		/*{1=dagu, 45=xidong, 66=zhangming, 100=liming}*/
	}

NavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) 返回的视图 可以设置是否包含左右端点

SortedMap<K,V> subMap(K fromKey, K toKey) 返回的的字典的集合可以包含左端点 但是不包含右端点

public static void main(String[] args) {
		TreeMap<Integer, String> tmap = new TreeMap<>();
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(50, "zhangsan");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		/*{1=dagu, 2=xiaolong, 45=xidong, 50=zhangsan, 66=zhangming, 100=liming}*/
		System.out.println(tmap.subMap(2, 66));  // 只包含左边界
		/*{2=xiaolong, 45=xidong, 50=zhangsan}*/
		
		System.out.println(tmap.subMap(2, true, 66, true));  // 可以设置是否包含左右边界
		/*{2=xiaolong, 45=xidong, 50=zhangsan, 66=zhangming}*/
	}

遍历方法

和HashMap一样

排序

因为Map数据结构的特殊性质 导致使用Comparator()需要一些技巧

Comparator()只能对key值排序 所以如果想要对Key和Value都排序 可以自定义Pair类 把Key和Value封装在一起

然后把Key值设置为Pair类型 这个时候的Value随便什么都可以

public static void main(String[] args) {
		// 按照Key值从大到小排序
		TreeMap<Integer, String> tmap = new TreeMap<>(new Comparator<Integer>() {
			@Override
			public int compare(Integer o1, Integer o2) {
				int num = 0;
				if (o1 > o2) num = -1;
				else num = 1;
				return num;
			}
		});
		tmap.put(100, "liming");
		tmap.put(1, "dagu");
		tmap.put(2, "xiaolong");
		tmap.put(45, "xidong");
		tmap.put(50, "zhangsan");
		tmap.put(66, "zhangming");
		System.out.println(tmap);
		/*{100=liming, 66=zhangming, 50=zhangsan, 45=xidong, 2=xiaolong, 1=dagu}*/
	}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/14332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(续)SSM整合之springmvc笔记(域对象共享数据)(P136-138)

目录 一 使用ServletAPI向request域对象共享数据 二 使用ModelAndView向request域对象共享数据 1 新建TestScopeController 2 index.html 3 书写TestScopeController 4 success.html 5 测试 三 使用Model向request域对象共享数据 1 index.html 2 TestSc…

HTNL---表格标签和列表标签

一、表格标签 对于表格我想就不用做很多细说了吧&#xff0c;Excel大家应该都知道。HTML中的表格不是用来布局页面的而是用来展示数据的。 1&#xff1a;表格标签基本使用 <table> <tr><th>姓名</th> <th>年龄</th> <td>第一</…

【Note5】macvlan,spi,rsyslog,sol

文章目录1.BMC虚拟多网口&#xff1a;macvlan是kernel提供的一种网卡虚拟化技术&#xff0c;可将网卡&#xff08;不一定是真实的物理网卡&#xff09;虚拟出多个接口&#xff0c;这网卡称为master或父接口&#xff0c;这些虚拟接口和外面环境通信都是通过父接口1.1 bridge&…

RESTful 接口设计拓展,接口设计注意事项,注解的简化

文章目录RESTful 接口设计拓展1.多参数传递2.URL拓展3.RESTful接口注意事项4.注解的简化RESTful 接口设计拓展 1.多参数传递 /*** 获取某一个员工&#xff0c;多参数* 1. 请求路径--确认资源--员工--/employees* 2. 请求方法--get* 3. 请求参数--id&#xff0c;name,age* 4. …

Python接口测试之requests详介与实战

目录 requests介绍 1、简述发展史 2、安装 3、官方自评 4、requests支持的请求类型 4、requests的参数与返回 requests接口请求Python脚本实战 1、GET接口实战 2、POST接口实战 3、PUT接口实战 4、DELETE接口实战 requests介绍 Http网络接口请求库 1、简述发展史 …

设计师找灵感就上这几个网站。

推荐5个设计师必备的设计灵感网站&#xff0c;希望对你有帮助&#xff01; 1、pinterest&#xff08;梯子&#xff09; https://www.pinterest.es/Pinterest是以瀑布流的方式来展示图片&#xff0c;在算法上也会根据你的浏览和识别的图片去做推算。 所以Pinterest是需要“经营”…

网络编程概述

Java是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程 序的支持&#xff0c;程序员能够很容易开发常见的网络应用程序。 Java提供的网络类库&#xff0c;可以实现无痛的网络连接&#xff0c;联网的底层 细节被隐藏在 Java 的本机安装系统里&#xff0c;由 JVM …

权限系统设计

背景 目前只做了用户账号间的数据隔离。存在情况&#xff0c;同一个项目里不同人创建不同的资源&#xff0c;项目里的成员都可以看得到&#xff0c;同时也不能互相随便修改数据。所以需要一些组的权限控制。 1.模型和模型荚是公用的&#xff0c;没有做用户区分&#xff0c;也没…

学计算机的可以做哪些适合自己的兼职?

如果你在做以下的任意一种兼职&#xff0c;我建议你立刻停止&#xff01; 1.单纯体力劳动的兼职 像是发传单、发问卷、送外卖这类兼职只能在短期内提升你的“8小时外收入”的兼职&#xff0c;纯粹是靠时间和体力来换钱&#xff0c;性价比很低&#xff0c;而且不能通过兼职提升…

指定字符串中的一部分将原来的字符串拆分成三部分partition()函数

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 指定字符串中的一部分 将原来的字符串拆分成三部分 partition()函数 选择题 对于以下python代码表述错误的一项是? Str"12345" print("【显示】Str",Str) print("…

Vue2【前端路由的概念与原理、vue-router 的基本用法、vue-router 的常见用法、后台管理案例】

文章目录前端路由的概念与原理1. 什么是路由3. SPA 与前端路由4. 什么是前端路由5. 前端路由的工作方式6. 实现简易的前端路由步骤1&#xff1a;通过 **\<component\>** 标签&#xff0c;结合 **comName** 动态渲染组件。示例代码如下&#xff1a;步骤2&#xff1a;在 Ap…

Xcode Cloud

一、使用Xcode Cloud 的要求 &#xff08;1&#xff09;开发者账户要求 已加入Apple Developer Program向xcode加入Apple IDApp Store Connect上有app 记录或者可以创建一个app记录 &#xff08;2&#xff09;Project和workspace要求 Project或者workspace使用Xcode项目使用…

JavaScript基础语法

JavaScript基础语法 文章目录JavaScript基础语法1.JavaScript的基本认知1.1 JS的介绍与组成1.2 JS代码使用格式2.JavaScript的注释与输入输出语句2.1 JS的注释方法2.2 JS的输入输出语句3.JavaScript的变量3.1 JS的变量初始化3.2 JS的声明变量特殊情况3.3 JS的变量命名规则4.Jav…

Windows版本Anaconda安装教程

1、点击安装包&#xff0c;右键-以管理员身份运行安装文件&#xff0c;如图所示&#xff1a; 2、直接点击next即可 3、接着进入到许可协议的界面&#xff0c;这里点击I agree选项&#xff0c;也就是我同意的意思。 4、接着进入到用户选择的界面&#xff0c;选择all users选项&a…

面试官的灵魂质问—什么是转发与重定向

文章目录 文章目录文章目录[toc]一、什么是HttpServletRequest、HttpServletReSponse&#xff1f;二、Servlet中HttpServletRequest[源码](https://so.csdn.net/so/search?q源码&spm1001.2101.3001.7020)分析获取客户端传递的参数请求转发三、Servlet中HttpServletReSpons…

HTML网页设计结课作业——基于HTML+CSS仿学校官网页面

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

【保姆级】新机器部署Nacos

1、登录服务器&#xff0c;如果非root用户则切root用户 sudo su - 2、在/usr/tmp目录上传nacos安装包 3、将安装包移到/usr/local/目录 mv nacos-server-2.0.3.tar.gz /usr/local/ 4、解压 tar -zxvf nacos-server-2.0.3.tar.gz 5、创建nacos数据库&#xff0c;执行官网SQL建…

vc中调用matlab生成的动态库

开发环境&#xff1a; vs2010 matlab r2016a 步骤一&#xff1a;matlab中生成动态库 创建文本文件 D:\matlabTest\myadd.m&#xff0c;文件内容参看下面代码部分。注意&#xff1a;如果把myadd.m文件直接放在d盘根目录下&#xff0c;matlab中编译生成动态库时&#xff0c;会…

JavaScript--跟随pink老师视频学习版 (2022)

JavaScript一、JavaScript简介1.什么是JavaScript2.JavaScript用途3.浏览器执行JavaScript简介3.JavaScript组成1.ECMAScript2.DOM3.BOM4.JavaScript代码位置1.行内2.内嵌3.外部引入5.JavaScript输入输出语句二、JavaScript变量1.什么是变量2.变量使用3.变量命名规范三、数据类…

DBCO-NH2,DBCO-Amine 实验室 杂氮二苯并环辛炔-胺 1255942-06-3

DBCO(二苯并环辛炔) 的羧基和琥珀酰亚胺酯衍生物&#xff0c;可与带有胺基的生化小分子形成稳定的酰胺键连接。 胺官能团的环辛炔衍生物。环辛炔可用于菌株促进的无铜叠氮化物-炔烃环加成反应。该二苯并环辛炔可在不需要Cu&#xff08;I&#xff09;催化剂的情况下&#xff0c…