为什么用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