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

算法训练——day13哈希Map、Set、Bucket

HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

HashMap 是无序的,即不会记录插入的顺序。

HashMap<Integer, String> ret= new HashMap<Integer, String>();//定义哈希表//增
hashmap.put(1, "str1"); // 执行后为{1=str1}
hashmap.put(2, "str2"); // 执行后为{1=str1, 2=str2}//删
hashmap.remove(1); // 执行后hash表内为{2=str2}
hashmap.remove(2); // 执行后hash表内为{}//改:替换指定的key对应的 value
hashmap.replace(key,value);//查:根据key来访问value
hashmap.get(1); // 返回str1//清空
hashmap.clear();//计算键对的数量
hashmap.size();//当hashmap中有这个key时,就用对应的value,没有的话用默认值defaultValue;
hashmap.getOrDefault(key,defaultValue);//检查是否存在对应的映射关系
hashmap.containsKey(key); //key对应的映射关系
hashmap.containsValue(value); //value对应的映射关系
hashmap.isEmpty(); //是否为空hashmap.values(); // 返回所有Value值组成的集合
//现有HashMap: {1=str1, 2=str2}
//则返回Values: [str1, str2]// foreach循环for (Map.Entry<Integer, Integer> entry : map.entrySet()) {System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());}

HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。

HashSet 允许有 null 值。

HashSet 是无序的,即不会记录插入的顺序。

HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。

Set<Integer> hashset= new HashSet<Integer>();//定义
hashset.add(1);//增
hashset.remove(1);//删//使用 contains() 方法来判断元素是否存在于集合当中:
hashset.contains();//大小
hashset.size();
// 清空
hashmap.clear();//迭代HashSet<String> hashset= new HashSet<String>();hashset.add("str1");hashset.add("str2");hashset.add("str3");hashset.add("str2"); // 重复的元素不会被添加for (String i : hashset) {System.out.println(i);
/*输出:
str1
str2
str3
*/

 HashBucket


http://www.mrgr.cn/news/28997.html

相关文章:

  • Redis知识点整理 - 脑图
  • Hbase Shell
  • Windows上安装RabbitMQ 4.0.3教程
  • AI生活之我用AI处理Excel表格
  • 接口类和抽象类在设计模式中的一些应用
  • Qt_day10_程序打包(完结)
  • vivado中选中bd文件后generate output product是什么用,create HDL wrapper是什么用
  • Apache Airflow
  • 枚举类题目练习心得
  • 介绍⼀下泛型擦除
  • 数据结构_1、基本概念
  • 强化学习Reinforcement Learning|Q-Learning|SARSA|DQN以及改进算法
  • 《C++虚函数调用开销大揭秘:性能与灵活性的权衡》
  • 如何在win10Docker安装Mysql数据库?
  • 数字经济指数合集
  • 了解云容器实例云容器实例(Cloud Container Instance)
  • Win11小技巧之调节音量
  • 微信支付开发-前端api实现
  • 系统架构设计师 大数据架构篇二
  • Spring 源码解读:实现@Scope与自定义作用域
  • hnust 湖科大 毕业实习常见问题30问(2021 年7月,V0.9)
  • 基于TCP实现聊天
  • grep 命令:文本搜索
  • Qt优秀开源项目之二十三:QSimpleUpdater
  • Vert.x初探
  • 星火AI图片理解API文档