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

【轻松拿捏】Java-List、Set、Map 之间的区别是什么?

List、Set、Map 之间的区别是什么?

一、List

二、Set

三、Map


🎈边走、边悟🎈迟早会好

一、List

  • 有序性List 保持元素的插入顺序,即元素按添加的顺序存储和访问。
  • 允许重复List 可以包含重复的元素。
  • 实现类:常用的实现类包括 ArrayListLinkedListVector
  • 访问方式:可以通过索引访问元素,例如 list.get(0) 获取第一个元素。
  • 用法场景:适用于需要按顺序访问元素,或频繁插入、删除元素的场景。
  • 常用方法

  • add(E e): 添加元素到列表的末尾。
  • get(int index): 获取指定位置的元素。
  • remove(int index): 移除指定位置的元素。
  • size(): 返回列表中的元素数量。
  • contains(Object o): 判断列表是否包含指定的元素。
  • indexOf(Object o): 返回指定元素在列表中的第一次出现位置。
    List<String> list = new ArrayList<>();
    list.add("Apple");
    list.add("Banana");
    list.add("Apple"); // 允许重复
    System.out.println(list.get(0)); // 输出: Apple
    System.out.println(list.size()); // 输出: 3
    System.out.println(list.contains("Banana")); // 输出: true
    list.remove(1); // 移除第二个元素
    

    二、Set

  • 无序性Set 不保证元素的顺序,元素可能按照不同的顺序存储。
  • 不允许重复Set 不允许包含重复的元素,每个元素都是唯一的。
  • 实现类:常用的实现类包括 HashSetLinkedHashSet TreeSet
  • 访问方式:没有索引,通常通过迭代器访问元素。
  • 用法场景:适用于需要保证元素唯一性,或不关心元素顺序的场景。
  • Set<String> set = new HashSet<>();
    set.add("Apple");
    set.add("Banana");
    set.add("Apple"); // 不允许重复,重复的元素不会被添加
    for (String fruit : set) {System.out.println(fruit);
    }
    

    三、Map

  • 键值对存储Map 存储键值对,每个键唯一对应一个值。
  • 键唯一性Map 中的键是唯一的,不允许重复,但值可以重复。
  • 实现类:常用的实现类包括 HashMapLinkedHashMap TreeMap
  • 访问方式:通过键访问对应的值,例如 map.get(key) 获取对应的值。
  • 用法场景:适用于需要通过键快速查找值,或需要存储键值对的场景。
  • Map<String, Integer> map = new HashMap<>();
    map.put("Apple", 1);
    map.put("Banana", 2);
    map.put("Apple", 3); // 键是唯一的,后一个值会覆盖前一个值
    System.out.println(map.get("Apple")); // 输出: 3
    System.out.println(map.size()); // 输出: 2
    System.out.println(map.containsKey("Banana")); // 输出: true
    System.out.println(map.containsValue(2)); // 输出: true
    map.remove("Banana");
    

 🌟感谢支持 听忆.-CSDN博客

🎈众口难调🎈从心就好

http://www.lryc.cn/news/410019.html

相关文章:

  • 用户史订单查询业务
  • 第8节课:CSS布局与样式——掌握盒模型与定位的艺术
  • electron 主进程和渲染进程
  • redis的高可用及性能管理和雪崩
  • php基础语法
  • js抓取短信验证码发送
  • 视频怎么加密?常见的四种视频加密方法和软件
  • 聚焦全局应用可用性的提升策略,详解GLSB是什么
  • 无水印下载视频2——基于tkinter完成头条视频的下载
  • Java学习Day17:基础篇7
  • Vue3 Pinia的创建与使用代替Vuex 全局数据共享 同步异步
  • 手撕数据结构02--二分搜索(附源码)
  • 单片机工程师继续从事硬件设计还是涉足 Linux 开发?
  • 《昇思25天学习打卡营第25天|第28天》
  • Flutter Dio网络请求报错FormatException: Unexpected character
  • 关于@JsonSerialize序列化与@JsonDeserialize反序列化注解的使用(密码加密与解密举例)
  • 第二届世界科学智能大赛逻辑推理赛道:复杂推理能力评估 #大模型技术之逻辑推理方向 #Datawhale #夏令营 <二>
  • C# 关于Linq延迟查询
  • Navicat For Mysql连接Mysql8.0报错:客户端不支持服务器请求的身份验证协议
  • 以西门子winCC为代表的组态界面,还是有很大提升空间的。
  • HomeServer平台选择,介绍常用功能
  • 记录一个k8s集群zookeeper部署过程
  • TapData 信创数据源 | 国产信创数据库 TiDB 数据迁移指南,加速国产化进程,推进自主创新建设
  • 开始写人工智能
  • 盘点.软件测试模型
  • 燃气安全无小事,一双专业劳保鞋让你步步安心!
  • springboot校园服装租赁系统-计算机毕业设计源码30824
  • 线性回归和逻辑回归揭示数据的隐藏模式:理论与实践全解析
  • 掌握采购询价软件:高效比较供应商报价的技巧
  • AMQP-核心概念-终章