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

Java 集合与数据结构 · 接口 interfaces ·Collection 常用方法 · Map 常用方法

目录

  • 一、Java 集合
  • 二、学习 Java 集合框架有什么好处吗?
  • 三、接口 interfaces
    • 3.1 基本关系说明
    • 3.2 Collection 常用方法说明
    • 3.3 Conllection 示例
    • 3.4 Map 常用方法说明
    • 3.5 Map 示例

一、Java 集合

Java 集合框架 Java Collection Framework,又被称为容器 container,是定义在 java.util 包下的一组接口 interfaces 和其实现类 classes

其主要表现为将多个元素 element 置于一个单元中,用于对这些元素进行快速、便捷的存储 store、检索 retrieve、管理 manipulate,即平时我们俗称的增删改查 CURD。

集合,又例如:一副扑克牌(一组牌的集合)、一个邮箱(一组邮件的集合)、一个通讯录(一组姓名和电话的映射关系)等等。


类和接口总览



二、学习 Java 集合框架有什么好处吗?

  • 使用成熟的集合框架,有助于我们便捷、快速的写出高效、稳定的代码。
  • 学习背后的数据结构知识,有助于我们理解各个集合的优缺点以及使用场景。


三、接口 interfaces

3.1 基本关系说明

  1. Collection:用来存储管理一组对象 objects,这些对象一般被成为元素 elements。
  2. Set:元素不能重复,背后隐含着查找/搜索的语义。
  3. SortedSet:一组有序的不能重复的元素。
  4. List:线性结构。
  5. Queue:队列。
  6. Deque:双端队列。
  7. Map:键值对 Key-Value-Pair,背后隐含着查找/搜索的语义。
  8. SortedMap:一组有序的键值对。

3.2 Collection 常用方法说明

方法签名说明
boolean add(E e)将元素 e 放入集合中
void clear( )删除集合中的所有元素
boolean isEmpty( )判断集合是否没有任何元素,俗称空集合
boolean remove(Object e)如果元素 e 出现在集合中,删除其中一个
int size( )返回集合中的元素个数
Object[ ] toArray( )返回一个装有所有集合中元素的数组

3.3 Conllection 示例

	Collection<String> list = new ArrayList<>();
    System.out.println(list.size());
    System.out.println(list.isEmpty());
    
    list.add("我");
    list.add("爱");
    list.add("Java");
    System.out.println(list.size());
    System.out.println(list.isEmpty());
    
    Object[] array = list.toArray();
    System.out.println(Arrays.toString(array));
    
    for (String s : list) {
      System.out.println(s);
   }
   
    list.remove("爱");
    for (String s : list) {
      System.out.println(s);
   }
   
    list.clear();
    System.out.println(list.size());
    System.out.println(list.isEmpty());

3.4 Map 常用方法说明

方法签名说明
V get(Object k)根据指定的 k 查找对应的 v
V getOrDefault(Object k, V defaultValue)根据指定的 k 查找对应的 v,没有找到就用默认值代替
V put(K key, V value)将指定的 k-v 放入 Map
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value
Set<Map.Entry<K, V>> entrySet()将所有键值对返回
boolean isEmpty()判断是否为空
int size()返回键值对的数量

3.5 Map 示例

     Map<Integer,String> map = new HashMap<>();

     map.put(001,"林逸");
     map.put(002,"楚梦瑶");
     map.put(003,"陈雨舒");
     map.put(004,"唐韵");

     Set<Map.Entry<Integer,String>> entries = map.entrySet();
     for (Map.Entry<Integer,String> e : entries) {
         System.out.println(e);
     }

//        System.out.println(map.containsKey(004));
//        System.out.println(map.containsValue("陈雨舒"));

//        System.out.println(map.getOrDefault(001, "ly"));
//        System.out.println(map.getOrDefault(005, "天蝉"));

//        System.out.println(map.get(001));
//        System.out.println(map.get(004));

//        System.out.println(map.size());
//        System.out.println(map.isEmpty());
    }

注意事项:

Set<Map.Entry<K, V>> entrySet( ) 
将所有键值对返回

返回将使用一个 Set<Map.Entry<K, V>> 接收,
实际是存储到了 Map.Entry<K, V> 里面。

可以直接使用 for-each 遍历
for (Map.Entry<String, String> entry : map.entrySet()) {
	System.out.println(entry.getKey());
	System.out.println(entry.getValue());
}

相关文章:

  • 面试面不过?大厂面试官是这样说的···
  • 秒懂YUV444/YUV422/YUV420计算(二十九)
  • 模方重大更新,支持3ds max、新版大疆数据、匀色、多原点数据等
  • 论文教程之 138位科研工作者分享如何(认真地)阅读一篇科学论文
  • MVC、MVP、MVVM三种模式的介绍及区别
  • 注意力机制综述学习记录
  • 数据结构c语言版第二版(严蔚敏)第三章笔记
  • 羊了个羊,但是Python简(li)单(pu)版
  • 【软件测试】测试用例的设计方法
  • 二叉树的遍历问题
  • FPGA/HDL 人员开发利器-TerosHDL(开源 IDE)
  • 《谁动了我的奶酪》阅读笔记
  • 2023秋招--腾讯天美--游戏客户端--一面面经
  • 跨模态学习能力再升级,EasyNLP电商文图检索效果刷新SOTA
  • JavaScript 中什么时候使用 Map 更合适(二)
  • [译] React v16.8: 含有Hooks的版本
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • github从入门到放弃(1)
  • idea + plantuml 画流程图
  • JAVA_NIO系列——Channel和Buffer详解
  • Js基础——数据类型之Null和Undefined
  • LeetCode18.四数之和 JavaScript
  • magento 货币换算
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • php ci框架整合银盛支付
  • PHP CLI应用的调试原理
  • php中curl和soap方式请求服务超时问题
  • React16时代,该用什么姿势写 React ?
  • Vue.js-Day01
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 翻译--Thinking in React
  • 规范化安全开发 KOA 手脚架
  • 聚簇索引和非聚簇索引
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 看域名解析域名安全对SEO的影响
  • 来,膜拜下android roadmap,强大的执行力
  • 如何编写一个可升级的智能合约
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • gunicorn工作原理
  • Hibernate主键生成策略及选择
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • (13)Hive调优——动态分区导致的小文件问题
  • (javascript)再说document.body.scrollTop的使用问题
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (九)信息融合方式简介
  • (四)汇编语言——简单程序
  • (一) storm的集群安装与配置
  • (转)Linq学习笔记
  • (转)linux下的时间函数使用
  • .mysql secret在哪_MYSQL基本操作(上)