HashMap-leetcode总结

为什么用Hashmap?

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

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

数据结构

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


HashMap常用方法

1、HashMap的初始化

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

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

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

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

2、HashMap的常用方法

添加一对键值对

hashmap.put(你的key,你的value)

通过key获取对应value值

<T> value = hashMap.get(key)

获取value,没有可赋初值

hashMap.getOrDefault(key,初始值);

判断是否存入该键

hashMap.containsKey(待检查key)

判断是否存入该值

hashMap.constainsValue(待检查value)

获取hashmap内所有value

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

获取所有key

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

一些其他的知识点

1、Java遍历数组方法

只获取数组的每个元素

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

ArrayList<String> list = new ArrayList<>();
list.add("zj");
list.add("hxl");

 for (String name :list){
            System.out.println(name);
        }

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

题目需要用到索引就这个

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

2、字符串与字符的转换

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

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

从String ->Character

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

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

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

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

从Character -> String

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内分段

String[] words = t.split("分段字符");

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

3、数组便捷操作

sort排序

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

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

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

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

copy整体赋值

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值