java学习日记20230416-Map
Map接口实现类的特点
- Map与Collection并列存在,Key-Value双列映射
- Map中的Key和Value可以是任何引用类型的数据,会封装到HashMap$Node对象中;
- Map中的Key不允许重复,当有相同的key时,等价于替换
- Map中的Value是可以重复的
- Map中key和Value都可以为空,Key为空只能有一个,Value为空可以有多个
- 常用String类作为Map的key
- Key和Value存在单项的一对一关系
- 一对k-v放在一个Node节点,Node实现了Entry接口
map常用方法:
- put添加
- remove根据键删除映射关系
- get根据键获取value
- 获取元素个数
- isEmpty判断个数是否为0
- clear清除
- containsKey判断键是否存在
HashMap没有synchronized,线程不安全
public class MapMethod {
public static void main(String[] args) {
//常用方法
Map objectObjectMap = new HashMap();
objectObjectMap.put(1,"jack");
objectObjectMap.put(2,"tom");
objectObjectMap.put("test","testvalue");
//objectObjectMap.remove(2);
System.out.println(objectObjectMap.containsKey(1));
// objectObjectMap.clear();
objectObjectMap.isEmpty();
System.out.println(objectObjectMap.isEmpty());
System.out.println(objectObjectMap);
//遍历
for (Object o :objectObjectMap.keySet()) {
System.out.println(objectObjectMap.get(o));
}
Iterator iterator = objectObjectMap.keySet().iterator();
while(iterator.hasNext()){
System.out.println(objectObjectMap.get(iterator.next()));
}
Collection values = objectObjectMap.values();
for (Object o :values) {
System.out.println(o);
}
iterator =values.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//通过EntrySet
Set set = objectObjectMap.entrySet();
for (Object o :set) {
Map.Entry setMap = (Map.Entry)o;
System.out.println(setMap.getKey());
System.out.println(setMap.getValue());
}
Iterator iterator1 = set.iterator();
while (iterator1.hasNext()) {
Object next = iterator1.next();
Map.Entry next1 = (Map.Entry) next;
System.out.println(next1.getKey() +" "+next1.getValue());
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律