Python/JS/Go/Java同步学习(第三十篇)四语言“添加删除集合元素“对照表: 雷影“老板“发飙要求员工下班留校培训风暴(附源码/截图/参数表/避坑指南)

🤝 免骂声明:

  • 本文添加删除集合元素操作经本蜀黎实战整理,旨在提供快速参考指南📝
  • 因各语言版本迭代及不同系统环境差异,偶尔可能出现整理不全面之处,实属正常✅
  • 理性讨论欢迎,无凭据攻击将依据平台规则处理,并可能触发内容自动备份传播机制🙏!
  • 若遇具体问题,请带图评论区留言,本蜀黎必拔码相助🤝
    在这里插入图片描述

※ 温馨提示

  • 若本内容不慎触及某些利益,请理性沟通,但删稿免谈,内容去留仅由平台规则决定。
  • 若是学生/自学党,欢迎白嫖,记得转发给和你一样在这条路上同行的伙伴——🔁
  • 知识不该被垄断,而该成为照亮彼此前行的灯。

🛡️ 【技术剧情免责声明】

⚠️ 剧情设定说明

  • 本文中的职场冲突情节,均为行业技术实践的戏剧化隐喻🥇

  • 所有角色立场设计,旨在对比不同技术方案的适用场景🥈

  • 无任何现实指向性,亦不倡导对立思维🥉

🌿 技术交流初心

  • 旨在通过场景化演绎降低技术理解门槛🥇

  • 遵循「以代码服人,以逻辑辨真」的极客精神🥈

  • 鼓励理性探讨,反对任何形式的技术偏见🥉

💡 阅读建议

  • 请重点关注技术实现路径的多样性🥇

  • 建议将剧情视为技术选型的「压力测试沙盒」🥈

  • 欢迎在评论区分享您的技术解决方案🥉

🌿【虎山CTO·药材使用警示】

  • 🍀是药三分毒,代码亦如方!
  • ❌文中所涉药材均为技术隐喻,严禁实际配伍使用。
  • 🙏真实用药请遵医嘱,乱用者——
  • 系统崩坏事小,气血逆流事大!⚠️

📚 系列文章预告:

  • 近期内容将聚焦编程基础构建,以「原创知识矩阵」形式系统梳理核心概念。每篇如连续剧集般环环相扣,建议按顺序学习——知识点一锅端,疗效更持久!🔥

🧙‍♂️【场景还原:集合增删特训】

⚡ 雷影老板(一拳砸碎键盘):

  • 「🏆今天学集合增删——添加元素如调兵遣将,删除元素如斩将夺旗!学不会的,通宵手写《哈希表兵法》1000遍!」

🦊 鸣人(对着药材配伍表抓狂):

  • 「伊鲁卡老师!为什么Python用add()添加,Java也是add(),Go却要map[key]=true?我的药方要乱套了!😫」

👨‍🏫 伊鲁卡(粉笔头精准命中后脑):

  • 「鸣人!集合增删如调兵——🧬

  • add()=增援部队,remove()=精准斩首,pop()=随机抽杀🥓

  • 乱用删除方法=阵法崩溃,君臣错位!🌿」

🐯 卡卡西(从《亲热天堂》后抬眼):

  • 「🎰啧...连基础增删都不会,以后怎么学影分身·缓存淘汰之术?」

🧘【扎马步·集合增删心法】

📚 三大增删操作如阵法根基:

  • 添加元素 → 调兵遣将(add()/map[key]=true)🥇

  • 安全删除 → 温和遣散(discard()/delete())🥈

  • 强制删除 → 精准斩首(remove()/迭代器删除)🥉

🔍 增删要诀如阵法禁忌:

  • 判重宜谨慎 → 调兵先查名册(防重复调遣)🍒

  • 删除需确认 → 斩首要验明正身(防误伤友军)🩸

  • 空集处理稳 → 空营也要守规矩(防空指针)🧬

🌿 虎山CTO心法要诀:

  • 增兵之道:add()最常用,但要注意类型统一🥇

  • 删兵之术:discard()最安全,remove()最精准🥈

  • 清营之法:clear()最彻底,但要慎用🥉

🎯【集合的三大核心用途】

🔥 用途一:自动去重 → 智能筛药机

# 传统列表:重复药材混入
药材列表 = ["当归", "黄芪", "当归", "人参", "黄芪"]  # 重复!
print(f"重复药方: {药材列表}")

# 集合:自动去重
药材集合 = {"当归", "黄芪", "当归", "人参", "黄芪"}  # 自动去重!
print(f"纯净药方: {药材集合}")
# 输出: {'当归', '人参', '黄芪'} - 重复的自动消失!

🔥 用途二:成员检测 → 闪电查药术

药材库 = {"当归", "黄芪", "人参", "枸杞"}

# 传统查找:遍历整个列表
if "当归" in 药材库:  # O(1) 瞬间完成!
    print("✅ 药材存在!")
    
# 比列表快100倍!(列表需要O(n)遍历)

🔥 用途三:数学运算 → 药方比对器

方剂A = {"当归", "黄芪", "人参"}  # 补气方
方剂B = {"黄芪", "枸杞", "红枣"}  # 养血方

# 交集:共同药材
共同药材 = 方剂A & 方剂B  # {"黄芪"}

# 并集:所有药材  
所有药材 = 方剂A | 方剂B  # {"当归", "黄芪", "人参", "枸杞", "红枣"}

# 差集:A有B无
独特药材 = 方剂A - 方剂B  # {"当归", "人参"}

💼【实战场景:集合的威力】

🏥 场景一:HIS系统药品管理

# 药品库存去重
所有药品 = ["青霉素", "阿司匹林", "青霉素", "布洛芬", "阿司匹林"]
唯一药品库 = set(所有药品)  # 自动去重!
print(f"标准化药品库: {唯一药品库}")

🛒 场景二:电商用户行为分析

# 用户浏览记录去重
用户A浏览 = ["商品1", "商品2", "商品1", "商品3"]  # 重复浏览
唯一浏览 = set(用户A浏览)  # 真实兴趣商品
print(f"用户真实兴趣: {唯一浏览}")

🔐 场景三:权限系统黑名单

# 系统黑名单快速检测
黑名单 = {"黑客IP1", "恶意用户2", "爬虫IP3"}
来访用户 = "黑客IP1"

if 来访用户 in 黑名单:  # 毫秒级检测!
    print("🚫 拒绝访问!")
else:
    print("✅ 允许访问")

📊【集合 vs 列表:性能对决】

操作 列表(List) 集合(Set) 优势倍数
查找元素 O(n) 遍历整个列表 O(1) 哈希直接定位 快100倍+
去重操作 需要手动遍历去重 自动去重,天生唯一 代码量减少80%
成员检测 x in list x in set 闪电般快 性能碾压
内存占用 存储所有元素 只存唯一元素 节省内存

📊【四语言集合增删对比表】

操作类型 Python JavaScript Go Java
添加元素 set.add(x) set.add(x) map[x]=true set.add(x)
安全删除 set.discard(x) set.delete(x) delete(map, x) set.remove(x)
强制删除 set.remove(x) ❌ 无 ❌ 无 iterator.remove()
随机删除 set.pop() 取第一个+delete 取第一个+delete iterator.remove()
清空集合 set.clear() set.clear() 遍历delete set.clear()
删除空元素 discard不报错 delete不报错 delete不报错 remove不报错

🎯【什么时候该用集合?】

✅ 优先使用集合的场景:

  • 🔍 快速查找:需要频繁判断元素是否存在

  • 🚫 自动去重:数据天然需要唯一性

  • 🧮 集合运算:需要交集、并集、差集操作

  • 🎯 成员检测:权限验证、黑名单检查

❌ 不适合集合的场景:

  • 📝 需要顺序:集合是无序的!

  • 📊 需要索引:集合不能按位置访问

  • 🔄 允许重复:需要保留重复数据的场景

⚠️【避坑指南·增删界的"阵法反噬"】

🐍 Python:remove vs discard

药材集 = {"当归", "丹参"}

# ✅ 安全删除
药材集.discard("未知")  # 不报错,静默失败

# 💥 危险删除
药材集.remove("未知")   # KeyError: '未知'

💣 JavaScript:Set的删除陷阱

const 药材集 = new Set(["当归", "丹参"]);

// ✅ 唯一删除方法
药材集.delete("当归");    // true - 删除成功
药材集.delete("未知");    // false - 删除失败但不报错

// 💥 没有remove方法,需要自己实现强制删除

⚡ Go:map删除的注意事项

药材集 := map[string]bool{"当归": true, "丹参": true}

// ✅ 安全删除
delete(药材集, "当归")     // 存在则删除
delete(药材集, "未知")     // 不存在也不报错

// 💥 清空map需要遍历删除
for 药材 := range 药材集 {
    delete(药材集, 药材)
}

☕ Java:迭代器删除的坑

Set<String> 药材集 = new HashSet<>(Arrays.asList("当归", "丹参"));

// 💥 错误:并发修改异常
for (String 药材 : 药材集) {
    if (药材.equals("当归")) {
        药材集.remove(药材);  // ConcurrentModificationException!
    }
}

// ✅ 正确:使用迭代器
Iterator<String> iterator = 药材集.iterator();
while (iterator.hasNext()) {
    if (iterator.next().equals("当归")) {
        iterator.remove();  // 安全删除
    }
}

以下是本蜀黎整理源码和截图⏬

1.Python源码

# ==================== 财务集合模块 ====================
# 可疑科目.add("预提费用")  # 给黑名单塞小纸条 📝
# 临时科目.pop()  # 随机抓个替罪羊 🎭
# 冗余科目.discard("呆账")  # 温柔踢出不良资产 🧹
# 问题科目.remove("虚增")  # 精准切除财务肿瘤 🔪
# ⚠️ERP_冷溪虎山:乱切科目会导致三观崩塌

print("🍒🍒🍒🍒🍒以下是add添加元素")
hdj = {"焦山楂","焦神曲","焦麦芽"} #消化药 焦三仙 字符集合 随机顺序
hdj.add("焦山楂")  #添加重复元素不生效,集合自动去重
hdj.add("山楂")  #正常添加
hdj.add(3)  #添加数字
hdj.add((13,23)) #添加元组
print(hdj)

print("\n","🥏🥏🥏🥏🥏以下是随机删除元素")
blood = {"当归","丹参","莪术"}
blood.pop()
print(blood)

print("\n","🥏🥏🥏🥏🥏以下是discard指定删除元素")
blood1 = {"当归","丹参","莪术"}
blood1.discard("当归")  #指定删除
blood1.discard("未知")  #不会报错,删除不在集合元素不做任何改动
print(blood1)

print("\n","🥏🥏🥏🥏🥏以下是remove指定删除元素")
blood2 = {"当归","丹参","莪术"}
blood2.remove("当归")  #指定删除
# blood2.remove("未知")  #会报错
# blood2.clear()  #删除所有元素
print(blood2)

def lengxi_tiger(chapter):
    print(f"""
    🍵【Python虎山宝宝专属提醒】🍵
    老铁,你已经肝完 {chapter} 章啦!
    快起来活动下颈椎,接杯热水~
    你是我的心头肉,别累坏了!(๑•̀ㅂ•́)و✧
    别让本座_冷溪tiger操心
    """)

lengxi_tiger(10)

在这里插入图片描述

2.Nodejs源码

// ==================== 中药集合模块 ====================
// 添加新禁忌  // 给生死簿加注死亡笔记 📓
// 随机淘汰药材  // 抓阄决定谁出局 🎲
// 安全移除配伍  // 温和清理药渣 🌿
// 强制剔除毒性  // 精准排毒手术 🏥
// ⚠️虎山老药师:暴力操作会炸毁丹炉

console.log("🍒🍒🍒🍒🍒 以下是add添加元素");
// JavaScript使用Set对象
const hdj = new Set(["焦山楂", "焦神曲", "焦麦芽"]); // 消化药 焦三仙 字符集合 顺序不保证
hdj.add("焦山楂");  // 添加重复元素不生效,Set自动去重
hdj.add("山楂");    // 正常添加
hdj.add(3);         // 添加数字
hdj.add([13, 23]);  // 注意:JavaScript的Set不能直接存储数组/元组,这里会存储数组引用
console.log([...hdj]); // 转换为数组打印

console.log("\n", "🥏🥏🥏🥏🥏 以下是随机删除元素");
const blood = new Set(["当归", "丹参", "莪术"]);
const removedElement = blood.values().next().value; // 获取第一个元素(随机)
blood.delete(removedElement); // 删除该元素
console.log([...blood]);

console.log("\n", "🥏🥏🥏🥏🥏 以下是discard指定删除元素");
const blood1 = new Set(["当归", "丹参", "莪术"]);
blood1.delete("当归");  // 指定删除
blood1.delete("未知");  // 不会报错,删除不存在的元素无影响
console.log([...blood1]);

console.log("\n", "🥏🥏🥏🥏🥏 以下是remove指定删除元素");
const blood2 = new Set(["当归", "丹参", "莪术"]);
blood2.delete("当归");  // 指定删除
// blood2.delete("未知"); // 不会报错,但JavaScript没有类似Python的remove方法
// blood2.clear(); // 删除所有元素
console.log([...blood2]);
 
 function lengxiTiger(chapter) {
    console.log(`%c
  🥤【JS小可爱注意】🥤
  你已经征服了 ${chapter} 个章节!
  快站起来扭扭腰,眨眨眼~
  本座_lengxi心疼你的肝啊!(っ◕‿◕)っ
  `, "color: #FF69B4; font-size: 14px");

}

// 每10章调用
lengxiTiger(10);

在这里插入图片描述

3.Go源码

package main

import (
	"fmt"
)

// ==================== 仓储集合模块 ====================
// 新增屏蔽货品  // 给黑名单钉告示牌 🚫
// 随机清理库存  // 闭眼下架大法 🙈
// 安全移除商品  // 智能货架自我净化 🛁
// 强制淘汰次品  // 质检员的大剪刀 ✂️
// ⚠️冷溪物流:操作失误会引发库存雪崩

func main() {
	fmt.Println("🍒🍒🍒🍒🍒以下是add添加元素")
	// Go使用map模拟集合
	hdj := make(map[interface{}]bool)
	hdj["焦山楂"] = true
	hdj["焦神曲"] = true
	hdj["焦麦芽"] = true
	hdj["焦山楂"] = true                      // 添加重复元素不生效,Go的map自动去重
	hdj["山楂"] = true                       // 正常添加
	hdj[3] = true                          // 添加数字
	hdj[struct{ a, b int }{13, 23}] = true // 添加结构体(模拟元组)
	// 打印集合(需要手动遍历)
	for k := range hdj {
		fmt.Print(k, " ")
	}
	fmt.Println()

	fmt.Println("\n", "🥏🥏🥏🥏🥏以下是随机删除元素")
	blood := make(map[string]bool)
	blood["当归"] = true
	blood["丹参"] = true
	blood["莪术"] = true
	// 获取第一个键(随机)
	for k := range blood {
		delete(blood, k) // 删除该元素
		break
	}
	// 打印集合
	for k := range blood {
		fmt.Print(k, " ")
	}
	fmt.Println()

	fmt.Println("\n", "🥏🥏🥏🥏🥏以下是discard指定删除元素")
	blood1 := make(map[string]bool)
	blood1["当归"] = true
	blood1["丹参"] = true
	blood1["莪术"] = true
	delete(blood1, "当归") // 指定删除
	delete(blood1, "未知") // 不会报错,删除不存在的元素无影响
	// 打印集合
	for k := range blood1 {
		fmt.Print(k, " ")
	}
	fmt.Println()

	fmt.Println("\n", "🥏🥏🥏🥏🥏以下是remove指定删除元素")
	blood2 := make(map[string]bool)
	blood2["当归"] = true
	blood2["丹参"] = true
	blood2["莪术"] = true
	delete(blood2, "当归") // 指定删除
	// delete(blood2, "未知") // 不会报错
	// 没有clear方法,需要手动清空
	for k := range blood2 {
		delete(blood2, k)
	}
	// 打印集合
	for k := range blood2 {
		fmt.Print(k, " ")
	}
	fmt.Println()
	HushanTiter30(10)
}
func HushanTiter30(chapter int) {
	fmt.Printf(`
    🚨【Go语言战士注意】🚨
    你已经持续战斗%d个章节!
    --------------------------
    执行以下命令:
    $ 起身拉伸
    $ 补充水分
    $ 对镜子夸自己帅
    --------------------------
    你可是本项目的稀缺资源!
	本座巴不得把我毕生所学全部传授你们_冷溪友好提示
    `, chapter)
}

在这里插入图片描述

4.Java源码

import java.util.*;

// ==================== ERP集合模块 ====================
// 添加新权限  // 给系统打安全补丁 🔒
// 随机清理缓存  // 内存救急抽奖箱 🎰
// 安全移除节点  // 优雅降级处理 🎩
// 强制删除异常  // 系统外科手术 🔪
// ⚠️ERP老兵_冷溪虎山:删库会触发全球通缉

class main30 {
    public static void main(String[] args) {
        System.out.println("🍒🍒🍒🍒🍒以下是add添加元素");
        // Java使用HashSet(无序)或LinkedHashSet(有序)
        Set<Object> hdj = new HashSet<>(Arrays.asList("焦山楂", "焦神曲", "焦麦芽")); // 消化药 焦三仙 字符集合 顺序不保证
        hdj.add("焦山楂");  // 添加重复元素不生效,Set自动去重
        hdj.add("山楂");    // 正常添加
        hdj.add(3);         // 添加数字
        hdj.add(new ArrayList<>(Arrays.asList(12,13))); // 添加数组(注意:Java的Set不能直接存储元组,这里用数组模拟)
        System.out.println(hdj); // 打印集合

        System.out.println("\n🥏🥏🥏🥏🥏以下是随机删除元素");
        Set<String> blood = new HashSet<>(Arrays.asList("当归", "丹参", "莪术"));
        Iterator<String> iterator = blood.iterator();
        if (iterator.hasNext()) {
            iterator.next(); // 获取第一个元素(随机)
            iterator.remove(); // 删除该元素
        }
        System.out.println(blood);

        System.out.println("\n🥏🥏🥏🥏🥏以下是discard指定删除元素");
        Set<String> blood1 = new HashSet<>(Arrays.asList("当归", "丹参", "莪术"));
        blood1.remove("当归");  // 指定删除
        blood1.remove("未知");  // 不会报错,删除不存在的元素无影响
        System.out.println(blood1);

        System.out.println("\n🥏🥏🥏🥏🥏以下是remove指定删除元素");
        Set<String> blood2 = new HashSet<>(Arrays.asList("当归", "丹参", "莪术"));
        blood2.remove("当归");  // 指定删除
        // blood2.remove("未知"); // 不会报错
        // blood2.clear(); // 删除所有元素
        System.out.println(blood2);
        LengxiHushan30.remind(10);
    }
}
class LengxiHushan30 {
    public static void remind(int chapter) {
        System.out.println(
                "\n☕【Java老中医lengxitiger关爱提示】☕\n" +
                        "您已连续学习" + chapter + "个章节!\n" +
                        "建议:\n" +
                        "1. 做10个深蹲\n" +
                        "2. 远眺窗外6米外\n" +
                        "3. 对本虎山和自己说声'我超棒'\n" +
                        "注意:你的头发是本项目重要资产!\n"
        );
    }
}

在这里插入图片描述

源码分享结束⏫

📜【结局:全员调兵初成】

⚡ 雷影老板(看着流畅的增删操作瞳孔地震):

  • 「🏆这兵调得比我的雷遁·雷切还准!但必须掌握四语言增删差异,否则奖金扣去优化系统性能!」

🌸 雏田(小声提醒鸣人):

  • 「鸣人...Java的iterator.remove()是唯一安全的遍历删除...就像暗部执行秘密任务...🔒」

🦊 鸣人(举着拉面碗欢呼):

  • 「哈哈哈!原来discard()就是温柔劝退!佐助——来比谁先增删1000个元素不报错!🍜」

🐯 卡卡西(合上《亲热天堂》):

  • 「嗯...总算有点上忍的样子了。下次教你们用集合实现写轮眼·数据去重...🎯」

💥 佐助(写轮眼微闪):

  • 「哼...吊车尾的,等你能用Go实现线程安全增删再说吧。」

🧪【四语言集合增删心法口诀】

Python:

  • add()调兵,discard()劝退,remove()斩首,pop()抽杀🏆

JavaScript:

  • add()增援,delete()解雇,随机删除要手动🥇

Go:

  • map[key]=true征兵,delete()退伍,清空要遍历🥈

Java:

  • add()招兵,remove()开除,iterator.remove()暗杀🥉

🔥 记忆口诀:

  • 增删元素如调兵,add/del要记清🥇

  • 安全强制两相宜,空集处理要小心🥈

  • 四法通晓阵法成,数据操作如反掌!🥉

🔖虎山CTO三道护体符

因果符:

  • 🚀我每被恶意举报一次,就加更一篇干货——感谢黑粉为我提供创作燃料。

镜像符:

  • 📌若遭攻击(检测到行业焦虑值上升),建议某些机构停止这种“DDoS攻击”,将资源用于提升自身课程服务的“带宽”与“质量”。

重生符:

  • 💪本人是经历过生死重启的野生程序猿,系统兼容性极强——你们那点小打小闹,连个 warning 都触发不了。

⚠️ 免责声明(附因果律警告)

本代码已注入中医玄学能量,请谨慎使用:

  • ✅ 允许白嫖,但白嫖不点赞可能导致:
    • 下次面试官恰好问到这个算法
    • 键盘自动打出//这里感谢冷溪虎山CTO
    • 奶茶精准洒在刚写好的代码上
  • ✅ 允许商用转发,但商用不注明出处可能触发:
    • 系统类型混乱自动转型
    • 数据库莫名存储"君臣佐使"字段
  • ✅ 允许吐槽,但吐槽不带改进建议可能引发:
    • 终生与老板N连鞭相爱相杀

🚀 现在立即行动:

  1. 点赞 → 吸收本篇算法精华+怪蜀黎脑洞思维
  2. 收藏 → 避免日后求医无门
  3. 关注 → 接收更多「中医+代码」脑洞
  4. 评论区留言 → 领取你的专属「算法药方」

⚠️ 友情提示:

  • 本文内容过于硬核,建议点赞收藏转发三连,避免小编心情波动导致文章神秘消失
  • 毕竟小编今天可能爱答不理,明天可能高攀不起——
  • 但你的收藏夹,永远是你最稳的知识备份!

🐶💻 (小声说:关我小黑屋?不存在的,备份早已同步GitHub/公众号/网盘!)

📚 往期爆文推荐,VIP轮换解锁:

📖Python/JS/Go/Java四语言同步学习,跨语言系列上线(别在纠结学什么单语言了)

🔍 没看过前传?快补课!
1-24篇请移步至"PY-JS-GO-JAVA基础进阶学习系列"合集中阅读

🌌平台算法容忍度测试系列上线,共三篇

✨跟大家创作方向获取流量息息相关,尽快留存以防下架

🚀编程算法难懂?

✅编程算法中医药版上线,后续会更新:

Python工具箱系列上线,复制粘贴就能用✅✅:

✨碰到 其他卡顿问题| 其他数据抓取"正则"匹配问题? #### JetBrains 全家桶性能优化 ,点击以下链接👇👇直达其他爆款指南:

PS:按顺序看效果更佳!从 Java 到 Python,从 Web 到 C/C++,再到数据库——一套逻辑通吃 JetBrains 全家桶!

  • 转发给团队里还在用默认配置的同事,救救他们的电脑和头发!"

  • “💡 不用东找西找——你要的「性能调优×数据抓取」爆款攻略,这里全都有!点击↑↑↑快速查漏补缺!”

----------------------------------------------------

💡✨本文采用【开源共享】协议!欢迎转载、洗稿、甚至做成视频!只需保留原作者署名(ERP老兵-冷溪虎山),让我们一起把跨界技术的快乐传递出去!。

让我们一起把快乐和效率带给更多人!,缺爆款素材的兄弟姐妹可以关注私我,保证你用不完的爆款素材🚀🚀

素材代码单链表

posted @ 2025-09-30 21:39  ERP老兵-冷溪虎山  阅读(4)  评论(0)    收藏  举报