概述
添加、删除、修改操作:
- Object put(Object key,Object value):将指定key-value添加到(或修改)当前map对象中
- void putAll(Map m):将m中的所有key-value对存放到当前map中
- Object remove(Object key):移除指定key的key-value对,并返回value
- void clear():清空当前map中的所有数据
- 修改也由put来体现
public class Test {
public static void main(String[] args) {
Map map=new HashMap();
map=new LinkedHashMap();
map.put("AA",123);//体现的是添加操作
map.put(45,123);
map.put("BB",56);
map.put("AA",87);//体现出来的是修改
System.out.println(map);//{AA=87, 45=123, BB=56},输出的格式是:key=value
Map map1=new HashMap();
map1.put("CC",123);
map1.put("DD",123);
map.putAll(map1);
System.out.println(map);//{AA=87, 45=123, BB=56, CC=123, DD=123}
Object obj=map.remove("CC");//返回要移除的键值对的value
System.out.println(obj);//123
System.out.println(map);//{AA=87, 45=123, BB=56, DD=123}
Object obj1=map.remove("CCC");//这个key是不存在的
System.out.println(obj1);//返回的是null
map.clear();//clear是清空map中的数据,不等同于map=null
System.out.println(map);//{}
System.out.println(map.size());//0
}
}
元素查询的操作:
- Object get(Object key):获取指定key对应的value
- boolean containsKey(Object key):是否包含指定的key
- boolean containsValue(Object value):是否包含指定的value
- int size():返回map中key-value对的个数
- boolean isEmpty():判断当前map是否为空
- boolean equals(Object obj):判断当前map和参数对象obj是否相等
public class Test {
public static void main(String[] args) {
Map map=new HashMap();
map.put("AA",123);
map.put(45,123);
map.put("BB",56);
System.out.println(map.get(45));//123
System.out.println(map.get(455));//null,455这个key不存在返回的结果就是null
boolean isExist = map.containsKey("BB");//containsKey会去找哈希值,再根据哈希值判断数组中的位置,再看谁和它equals,看是不是包含这个key
System.out.println(isExist);//true
boolean containsValue = map.containsValue(123);//因为现在有两个123,所以只要找到一个就不会继续往下找了
System.out.println(containsValue);//true
map.clear();//把数组元素改成了null,把size改成了0
System.out.println(map.isEmpty());//true,这个方法如果size为0就会返回true
//要想equals方法的结果是true,参数也要是Map,同时里面存的数据也要一样
}
}
元视图操作的方法:
- Set keySet():返回所有key构成的Set集合
- Collection values():返回所有value构成的Collection集合
- Set entrySet():返回所有key-value对构成的Set集合
涉及到如何去遍历Map中的key,value以及key-value
Collection的遍历可以用迭代器,这个时候就没有迭代器了,迭代器是针对Collection来说的,
Map没有iterator方法。但Map是由key和value构成的,所有的key使用Set存储,要想遍历所有key,拿到key的Set,再用Set去iterator即可。value也一样,只要能够拿到所有的value,value的存在形式是Collection,再用Collection去调iterator方法即可,键值对整体构成了一个Set,要拿到所有的Entry构成的Set去iterator也可以
public class Test {
public static void main(String[] args) {
Map map=new HashMap();
map.put("AA",123);
map.put(45,123);
map.put("BB",56);
//遍历所有的key集:keySet()
Set set = map.keySet();//得到的set是由所有的key构成的,下一步就可以用迭代器了
Iterator iterator = set.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//遍历所有的value集:values()
// Collection values = map.values();
// 方式一
// Iterator iterator1 = values.iterator();
// while(iterator1.hasNext()){
// System.out.println(iterator1.next());
// }
//方式二
Collection values = map.values();
for(Object obj:values){
System.out.println(obj);
}
//遍历输出key和输出value的顺序是一致的,因为底层是Entry或者叫Node,是找到Node以后,如果要key就去拿key,如果拿value就去拿value
//遍历所有的key-value
//方式一:entrySet(),返回的是Set,Set中放的是一个一个的Entry
Set entrySet = map.entrySet();
Iterator iterator1 = entrySet.iterator();
while(iterator1.hasNext()){
Object obj = iterator1.next();//其实这个obj是Entry,可以用Entry进行强制转换
Map.Entry entry = (Map.Entry) obj;
//在Entry中有getKey和getValue方法
System.out.println(entry.getKey()+"-->"+entry.getValue());
}
//方式二:用上面涉及到的方法拼凑出来:找到key之后使用get方法可以得到value
Set keySet =map.keySet();//得到的set是由所有的key构成的,下一步就可以用迭代器了
Iterator iterator2 = keySet.iterator();
while(iterator2.hasNext()){
Object key = iterator2.next();
Object value = map.get(key);
System.out.println(key+"-->"+value);
}
}
}
总结:
常用方法:
添加:
删除:
修改:
查询:
插入:Map无序,不可能存在插入操作
长度
遍历:
最后
以上就是纯真冰棍为你收集整理的Map中的常用方法的全部内容,希望文章能够帮你解决Map中的常用方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复