力扣基础知识普及

7 篇文章 0 订阅
4 篇文章 0 订阅

引言        

可能有一些同学在刷力扣时候感觉会特别吃力,经常不知道该如何解题。其实许多知识都是在我们平常学习过程中接触过,但可能用的太少。大家会感到太过陌生。接下来会出一期根据题目来巩固知识点的专栏,来帮助大家更好的理解并运用到解题过程中。

知识点(来源力扣第一题两数之和)

作为第一道题,其实还是比较简单的。接下来我们分析一下暴力法和哈希表法解题过程中用到的知识点

1.数组的声明方式

第一种  

int[] anArray;

第二种

int anOtherArray[];

两种方法不同之处就在于中括号的位置,是跟在类型关键字的后面,还是跟在变量的名称的后面。前一种的使用频率更高一些,因为在 ArrayList 的源码中就用了第一种方式。

同样的,数组的初始化方式也有多种,最常见的是:

int[] anArray = new int[10];

上面这行代码中使用了 new 关键字,这就意味着数组的确是一个对象,只有对象的创建才会用到 new 关键字,基本数据类型是不用的。基本数据的包装类型是可以 new 的,包装类型就是对象。后续讲到的hash等容器中可能会涉及到。然后,我们需要在方括号中指定数组的长度。

HashMap 是 Java 中常用的数据结构之一,用于存储键值对。在 HashMap 中,每个键都映射到一个唯一的值,可以通过键来快速访问对应的值,算法时间复杂度可以达到 O(1)。

HashMap 不仅在日常开发中经常用到,在面试和笔试中也是重点考察的对象。

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

上述代码就是新建一个HashMap对象,接下来介绍几种基本方法。

1.添加元素:

将一个键值对(元素)添加到 HashMap 中,可以使用 put() 方法。例如,将名字和年龄作为键值对添加到 HashMap 中:

HashMap<String, Integer> map = new HashMap<>();
map.put("法克儿", 24);
map.put("加瓦", 23);

2.查找元素:

从 HashMap 中查找一个键对应的值,可以使用 get() 方法。例如,查找名字为 "加瓦" 的年龄:

int age = map.get("加瓦");

拓展:

在实际应用中,HashMap 可以用于缓存、索引等场景。例如,可以将用户 ID 作为键,用户信息作为值,将用户信息缓存到 HashMap 中,以便快速查找。又如,可以将关键字作为键,文档 ID 列表作为值,将文档索引缓存到 HashMap 中,以便快速搜索文档。

HashMap 的实现原理是基于哈希表的,它的底层是一个数组,数组的每个位置可能是一个链表或红黑树,也可能只是一个键值对(后面会讲)。当添加一个键值对时,HashMap 会根据键的哈希值计算出该键对应的数组下标(索引),然后将键值对插入到对应的位置。

当通过键查找值时,HashMap 也会根据键的哈希值计算出数组下标,并查找对应的值。

3.检查 key 是否存在

如果 hashMap 中存在指定的 key 对应的映射关系返回 true,否则返回 false。

HashMap<String, Integer> map = new HashMap<>();
     map.put("法克儿", 24);
     map.put("加瓦", 23);
        //检查 key 是否存在
        if(sites.containsKey("加瓦")) {
            System.out.println("key存在于map中");
        }

    }
}

小结

今天我们了解了关于HashMap中一些方法,其实对于HashMap还有很多一部分内容等待我们去挖掘,同时HashMap在面试题中也涉及许多,我们需要通过大量练习来熟悉掌握这些方法。学海无涯苦作舟,书山有路勤为径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值