275/276Map常用子类和Map接口中的常用方法
Map常用子类
ap接囗的哈希表和洌表实现,具有可预知的迭代顺序。
此实现与 Hashmap的不同之处在于,后者维护着个运行于所有条目的双重链接列表比链接列表定义了迭代顺序,该迭代顺序通常就是将键插入到映射中的顺序(姻顺序。
注意,如果在映射中重新入键,则插入顺序不受影响。(如果在调用m.put(k,y)前m. cont ainsley(k)返回了true,则调用时会将键k重新插入到映射m中。)
java,util. HoshNap<k,v>集合impLements Map<k, v>接口
HashMap集合的特点:
1.HashMap集合底层是哈希表:查询的速度特别的快
JDK1.8之前:数组+单向链表
JDK1.8之后:数组+单向链表/红黑树(链表的长度超过8:提高查询的速度
2.hashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致
java.util.LinkedHashMap<k, v>集合extends HashMap<k, v>集合
LinkedHashMap的特点:
1.LinkedHashNap集合底层是哈希表+链表(保证送代的顺序)
2.LinkedHashNap集合是一个有序的集合、存储元素和取出元素的顺序是一致的
Map常用方法
public static void main(String[] args) {
// showe1();
// show2();
// show3();
show4();
}
/*
public v put(K key, v value):把指定的键与指定的值添加到Map集合中。
返回值:v
存储键值对的时候, key不重复,返回值v是nulL
存储键值对的时候, key重复,会使用新的value替换map中重复的value,返回被替换的value值
*/
private static void showe1() {
//创建Map集合对象,多态
Map<String, String> map = new HashMap<>();
String v1 = map.put("乐迪", "梁志超");
System.out.println("v1: " + v1);
String v2 = map.put("乐迪", "梁志超");
System.out.println("v2 : " + v2);
System.out.println(map);
map.put("卢本伟","伞兵一号卢本伟");
map.put("塞亚","超级赛亚人");
map.put("梁志超","哈嗨");
System.out.println(map);
}
/*
public V remove(Object key):把指定的键所对应的键值对元素在Nap集合中删除,返回被删除元素的值
返回值:v
key存在,v返回被删除的值key不存在,v返回null
*/
private static void show2(){
//创建Map集合对象
Map<String , Integer> map = new HashMap<>();
map.put("卢本伟" ,168);
map.put("梁志超",165);
map.put("你六舅",178);
System.out.println(map);
Integer v1 = map. remove("卢本伟");
System.out.println( "v1: "+v1);
System.out.println(map);
Integer v2 = map.remove( "卢本伟");
System.out.println( "v2 : "+v2);
System.out.println(map);
}
/*
public v get(0bject key)根据指定的键,在Nap集合中获取对应的值。
返回值:
key存在,返回对应的value值key不存在,返回null
*/
private static void show3(){
//创建Map集合对象
Map<String , Integer> map = new HashMap<>();
map.put("卢本伟",168);
map.put("梁志超",165);
map.put("你六舅",178);
Integer v1 = map.get("梁志超");
System.out.println("v1 : "+v1);//v1:165
Integer v2 = map.get("乐迪");
System.out.println( "v2 : "+v2);
}
/*
booLean containskey(object key)判断集合中是否包含指定的键。包含返回true,不包含返回faltse
*/
private static void show4(){
//创建Map集合对象
Map<String , Integer> map = new HashMap<>();
map.put("乐迪",168);
map.put("卢本伟",165);
map.put("哈嗨",178);
boolean b1 = map.containsKey("伞兵一号卢本伟");
System.out.println("b1: "+b1);
boolean b2 = map.containsKey("乐迪加速");
System.out.println( "b2 : "+b2);
}
Map map = new HashMap(); //创建map
map.put("1","哈嗨")
putAll(Map<? extends K,? extends V> m) //从指定映射中将所有映射关系复制到此映射中(可选操作)。
map.remove("1") //删除指定key的键值对,返回被删除的key关联的value,不存在返回null
map.remove("1","哈嗨") //删除指定的键值对,成功返回true
map.clear() //删除map中的所有键值对
map.size() //返回map中键值对的个数
map.isEmpty() //判断是否为空
map.containsKey("1") //判断Map中是否包含指定的Key
map.containsValue("哈嗨"); //判断Map中是否包含指定的Value
map.get("1") //返回指定Key对应的Value,不存在则返回null
Collection set = map.entrySet() //返回Map中键值对所组成的Set集合,集合元素是Map.Entry(Map的内部类)对象
Collection set = map.keySet() //返回Map中的key的Set集合
Collection set = mat.values() //返回的是Map里所有的value组成的Collection
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本