企业网站建设包括,如何选择家居网站建设,广州最繁华的地方在哪里,wordpress seo优化插件Day26 HashMap 文章目录 Day26 HashMap一、应用场景二、特点三、基本用法四、面试题 一、应用场景
1、概念#xff1a; HashMap是Java集合框架中的一种实现类#xff0c;用于存储键值对。
2、好处#xff1a; HashMap是一个常用的集合类#xff0c;适用于需要快速查找和插…Day26 HashMap 文章目录 Day26 HashMap一、应用场景二、特点三、基本用法四、面试题 一、应用场景
1、概念 HashMap是Java集合框架中的一种实现类用于存储键值对。
2、好处 HashMap是一个常用的集合类适用于需要快速查找和插入键值对的场景。通过合理使用HashMap可以高效地管理和操作键值对数据 。
二、特点
1、HashMap基于哈希表实现提供了快速的查找和插入操作。
2、允许使用null作为键和值。
3、不保证元素的顺序即不保证遍历顺序与插入顺序相同。
4、允许键和值都可以重复键重复会覆盖旧值。
理解无序 key去重
注意1.HashMap的key不允许重复Key是唯一的 2.HashMap的value允许重复
代码理解 public static void main(String[] args) {//Key是唯一的小杨去重HashMapString, Integer map new HashMap(); map.put(小张, 27);map.put(小宽, 23);map.put(小白, 23);map.put(小杨, 28);map.put(小杨, 29);map.put(小杨, 30);SetEntryString,Integer entrySet map.entrySet();for (EntryString, Integer entry : entrySet) {System.out.println(entry);}}三、基本用法 导入HashMap类 import java.util.HashMap;创建HashMap对象 HashMapString, Integer map new HashMap();添加键值对 map.put(apple, 10);
map.put(banana, 5);
map.put(orange, 8);获取值 int quantity map.get(apple); // 返回键apple对应的值遍历HashMap for (String key : map.keySet()) {int value map.get(key);System.out.println(key : value);
}检查键是否存在 boolean containsKey map.containsKey(apple); // 检查是否包含键apple删除键值对 map.remove(banana); // 删除键banana对应的键值对获取HashMap大小 int size map.size(); // 返回HashMap中键值对的数量代码理解
public class Test01 {/*** 知识点HashMap的使用*/public static void main(String[] args) {HashMapString, Integer map new HashMap();//添加元素map.put(小希, 27);map.put(小空, 23);map.put(小丽, 28);map.put(小光, 36);map.put(小田, 32);map.put(小阳, 28);map.put(小波, 28);//将newMap中所有的元素添加到map集合中HashMapString, Integer newMap new HashMap();newMap.put(aaa, 10);newMap.put(bbb, 20);newMap.put(ccc, 30);newMap.put(ddd, 40);map.putAll(newMap);//如果key存在就获取value值如果不存在就添加Integer putIfAbsent map.putIfAbsent(小希111, 28);System.out.println(putIfAbsent putIfAbsent);//通过Key获取到对应的ValueInteger integer1 map.get(小丽);System.out.println(通过Key获取对应的value integer1);//28//通过Key获取对应的value如果key不存在则返回默认值Integer integer2 map.getOrDefault(小希111, 888);System.out.println(通过Key获取对应的value integer2);//888//清空集合中的元素//map.clear();System.out.println(判断集合中是否有指定的key map.containsKey(小希));//trueSystem.out.println(判断集合中是否有指定的value map.containsValue(27));//trueSystem.out.println(判断集合中是否没有元素 map.isEmpty());//false//通过key删除映射关系(keyvalue)map.remove(aaa);//通过keyvalue删除映射关系(keyvalue)map.remove(bbb, 20);//通过key替换valuemap.replace(小希, 30);//通过keyvalue替换valuemap.replace(小空, 23, 25);//获取映射关系的个数映射关系内包含了key和valueint size map.size();System.out.println(获取映射关系的个数 size);//10//获取map中所有的valueCollectionInteger values map.values();System.out.println(Arrays.toString(values.toArray()));//将集合转换为数组再将数组转换为字符串System.out.println(-----------------------);//遍历 -- keySet()//思路获取map集合中所有的key放在一个Set集合中遍历Set集合获取出key再通过key获取到Map集合中对应的valueSetString keySet map.keySet();for (String key : keySet) {Integer value map.get(key);System.out.println(key -- value);}System.out.println(-----------------------);//遍历 -- entrySet()//思路获取map集合中所有的映射关系对象放在一个Set集合中遍历Set集合获取出映射关系对象(KeyValue)SetEntryString,Integer entrySet map.entrySet();for (EntryString, Integer entry : entrySet) {String key entry.getKey();Integer value entry.getValue();System.out.println(key -- value);}}
}四、面试题
需求针对于HashMap的value排序
public static void main(String[] args) {HashMapString, Integer map new HashMap(); map.put(小希, 27);map.put(小空, 23);map.put(小丽, 28);map.put(小光, 36);map.put(小田, 32);map.put(小阳, 28);map.put(小波, 28);//将map的映射关系对象取出返回Set集合SetEntryString,Integer entrySet map.entrySet();//将Set集合转换为ArrayList集合ArrayListEntryString,Integer list new ArrayList(entrySet);//利用ArrayList的sort方法去排序list.sort(new ComparatorEntryString,Integer() {Overridepublic int compare(EntryString, Integer o1, EntryString, Integer o2) {Integer v1 o1.getValue();Integer v2 o2.getValue();return Integer.compare(v1, v2);}});//遍历ArrayListfor (EntryString, Integer entry : list) {System.out.println(entry);}}