HashMap-leetcode总结

devtools/2024/9/24 22:50:54/

为什么用Hashmap?

将两种属性(key,value)具有某种联系,需要保存下来

随时读取是否存在且通过一方获取它对应值

数据结构

一数值value经过hashcode()计算出key,key对应数组位置建立链表


HashMap常用方法

1、HashMap的初始化

HashMap<key数据类型,value数据类型>

泛型内第一个为key的类型;第二个为value的类型

一般为各语言八大基本属性

java">    HashMap<Character, Integer> hashMap = new HashMap<>();

2、HashMap的常用方法

添加一对键值对

java">hashmap.put(你的key,你的value)

通过key获取对应value值

java"><T> value = hashMap.get(key)

获取value,没有可赋初值

java">hashMap.getOrDefault(key,初始值);

判断是否存入该键

java">hashMap.containsKey(待检查key)

判断是否存入该值

java">hashMap.constainsValue(待检查value)

获取hashmap内所有value

java">HashMap<String[],Integer> hashMap = new HashMap<>();
public void test(){hashMap.values();}

获取所有key

java">HashMap<String[],Integer> hashMap = new HashMap<>();
public void test(){hashMap.keySet();}

一些其他的知识点

1、Java遍历数组方法

只获取数组的每个元素

解题不需要元素相对位置(即索引值)

java">ArrayList<String> list = new ArrayList<>();
list.add("zj");
list.add("hxl");for (String name :list){System.out.println(name);}

同时获取数组索引和对应元素

题目需要用到索引就这个

java"> for (int i = 1;i<nums.length;++i){ }

2、字符串与字符的转换

一般获取与函数返回值为字符串或字符串数组

但是算法进行比较等逻辑处理,需要按照字符型char来

从String ->Character

随时使用索引i对应的元素

java">String str = "zhoujun798";
ArrayList<Character> arr = new ArrayList<>();for (int i =0;i<str.length();++i){arr.add(str.charAt(i));}

创建一个char数组,快速把字符转转换进数组

java">String str = "hxl_521"
char[] array = str.toCharArray;

从Character -> String

java">StringBuilder builder = new StringBuilder();public String getStr(Char[] arr){ for (int i =0;i<arr.size);++i){builder.append(arr[i]);}return builder.toString();
}

String内分段

java">String[] words = t.split("分段字符");//表示按空格分割,空格不算任何字符串里面去
String[] words = t.split("\\s");

3、数组便捷操作

sort排序

一般数组不用特地写冒泡,选择排序之类的方法,系统自带java静态方法

这个方法适用于整型(int[])、长整型(long[])、浮点型(float[]double[])、字符型(char[])、以及对象的数组(如 String[] 或任何实现了 Comparable 接口的类的对象数组)。

数字按从小到大顺序,字符与字符串

java">  ArrayList<String> list = new ArrayList<>();public String[] test(String[] str){Arrays.sort(str);return str;}

copy整体赋值

java">String[] original = {"Apple", "Banana"};  
String[] copy01 = Arrays.copyOf(original, original.length); // 副本1
String[] copy02 = Systom.arraycopy(original,original.length);// 副本2


http://www.ppmy.cn/devtools/98716.html

相关文章

几种防止Spring Boot 程序崩溃的方法

在 Spring Boot 应用程序中&#xff0c;预防程序崩溃并确保应用的稳定性可以通过以下几种方式来实现&#xff1a; 1. 全局异常处理 使用 Spring 的 ControllerAdvice 和 ExceptionHandler 注解&#xff0c;处理所有未捕获的异常&#xff0c;防止异常直接导致程序崩溃。 Cont…

新手如何找到正确入行 Web3 路径?揭开职业启航新篇章

&#x1f3c4; Web3 新晋开发者如何找到心仪的工作&#xff1f;除了加强自身技术本领&#xff0c;开发创新优质项目以外&#xff0c;拓展社会人脉、接触行业资源同样重要。与此同时&#xff0c;风云变幻的 Web3 行业环境中&#xff0c;我们又该如何寻找优质潜力的项目生态实现深…

C语言06--数组进阶

数组名含义 数组名有两个含义&#xff1a; 第一含义是&#xff1a;整个数组第二含义是&#xff1a;首元素的地址当出现以下情形时&#xff0c;那么数组名就代表整个数组&#xff1a; 在数组定义中在 sizeof 运算表达式中 &#xff0c;因此sizeof 计算的就是整个数组的大小。si…

【数据分析】(交互) 延迟互信息(熵、概率密度、高斯核、带宽估计)

文章目录 一、互信息基础二、延迟互信息2.1 交互延迟互信息三、时间序列互信息中的概率计算(高斯核密度估计)四、python 示例补充 1:熵熵的定义熵的性质熵的单位和对数底数熵的最大值高熵、低熵的分辨补充 2:概率密度 和 高斯核概率密度高斯核拓展3 :核密度函数带宽估计在…

C++类模板初阶

目录 1. 泛型编程 概念&#xff1a; 2.函数模板 2.1函数摸版概念&#xff1a; 2.2函数模板格式 2.3函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3.类模板 3.1 类模板的定义格式 3.2类模板实现示例 3.3类模板的实例化 1. 泛型编程 概念&#xff1…

探索鸿蒙开发:自主学习或需专业培训?

在数字化时代背景下&#xff0c;鸿蒙开发作为一种新兴技术&#xff0c;受到了广泛关注。对于初学者来说&#xff0c;他们可能会疑惑是否需要参加培训才能掌握鸿蒙开发。本文将探讨这一问题&#xff0c;并提出一些建议。 首先&#xff0c;了解鸿蒙开发的基本概念和特点是非常重要…

go语言中map、slice、chan底层数据结构是怎样的

map&#xff1a;rutime包下的map中的hmap // A header for a Go map. type hmap struct {// Note: the format of the hmap is also encoded in cmd/compile/internal/reflectdata/reflect.go.// Make sure this stays in sync with the compilers definition.count int /…

梳理一下react Hooks

本文引用React官网资料&#xff0c;地址&#xff1a;https://zh-hans.react.dev/reference/react/hooks&#xff08;一是作者可以书写文章增加印象&#xff0c;二是好好学习学习官网的写法&#xff09; React 内置 Hook Hook 可以帮助在组件中使用不同的 React 功能。你可以使用…