开发中最常用的就是List集合和Map集合,Map集合是基于java核心类——java.util中的;Map集合用于储存元素对,Map储存的是一对键值(key和value),是通过key映射到它的value;下面介绍的是Map集合的一些经常用到的方法以及代码示例。
1.map.size();
方法作用:获取map集合类的大小(map集合包含键值对关系映射的数量)
示例:
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//返回值为int类型
int size = map.size();
//输出size
System.out.println("map实例中的键值个数为:"+size);
}
2.map.values();
方法作用:获取map集合类所有的值(value)
示例:
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//得到map实例中所有的value,返回值类型为Collection
Collection values = map.values();
//输出values
System.out.println("map实例中所有的值(value)为"+values);
}
3.map.keySet();
方法作用:获取map集合所有的键(key)
示例
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//获取map实例中所有的键(key),返回值类型为Set
Set set = map.keySet();
//输出set
System.out.println("map实例中所有的key为:"+set);
}
4.map.get();//形参为key的名字
方法作用:通过键(key)的名字获取和键相匹配的值(方法映射),如果key或者value为空,则返回null;
示例:
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//通过key获取value
Object o = map.get("1");
//输出o
System.out.println("得到的value为:"+o);
}
5.map.remove()//形参为key
方法作用:根据key移除map中的与该key对应的value
示例:
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加了3个键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//移除key为1的键值
map.remove("1");
//输出map的大小
System.out.println("移除后的map大小为:"+map.size());//此处输出为2
}
6.map.clear();//形参为空,返回值为空
方法作用:清空Map集合中所有的键值
示例:
public static void main(String[] args) {
//new出map实例
Map map = new HashMap();
//向map实例中添加了3个键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//清空map的键值
map.clear();
//输出map的大小
System.out.println("清空后的map大小为:"+map.size());//此处输出为0
}
7.Entry
作用:Entry是Map集合中的一个内部接口,用于封装Map集合中的一组键值(key和value)
jdk1.5新特性之前的写法为Map.entry<k,v>,jdk1.5的新特性静态导入的导包方式写法为Entry,两种写法达到的效果一致,并没有什么不同。
前者为父类引用指向子类对象,后者是直接调用子类对象。
示例:
public static void main(String[] args) {
//获取Map内部接口Entry
Entry entry;
//new出map实例
Map map = new HashMap();
//向map实例中添加键值
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
//获得map中键值对的集合
Set set = map.entrySet();
//得到集合的迭代器
Iterator iterator = set.iterator();
//遍历迭代器
while (iterator.hasNext()){
//遍历出的键值放进entry集合里
entry=(Map.Entry) iterator.next();
//得到entry的key
String key = (String) entry.getKey();
//得到entry的value
String value = (String) entry.getValue();
//输出key和value
System.out.println("得到的key为"+key);
System.out.println("得到的value为"+value);
}
}
8.map.putAll()//形参为map集合
方法作用:把一个map集合合并到另一个map集合里
示例:
public static void main(String[] args) {
//new出map1实例
Map map1 = new HashMap();
//向map1实例中添加了3个键值
map1.put("1","飞机");
map1.put("2","坦克");
map1.put("3","大炮");
//输出map1的大小
System.out.println("map1的大小为:"+map1.size());//此处输出为3
//new出map2实例
Map map2 = new HashMap();
//向map2实例中添加了2个键值
map2.put("4","苹果");
map2.put("5","香蕉");
//输出map2的大小
System.out.println("map2的大小为:"+map2.size());//此处输出为2
//把map2合并到map1里
map1.putAll(map2);//合并时如果map2的key与map1的key有重复的,则map2的键值覆盖与map1重复的键值
System.out.println("合并后的map1大小为:"+map1.size());//此处输出为5
}
9.JDK8新特性新增的lambda表达式遍历Map的方法——Map.forEach();
public static void main(String[] args) {
Map<String,String> map = new HashMap<>();
map.put("1","飞机");
map.put("2","坦克");
map.put("3","大炮");
map.forEach((k,v)-> {
System.out.println(k+":"+v);
});
}
以上是我总结的一些Map基本的常用的方法,一般是用来封装参数的,希望可以对大家有些帮助,也算是自己的一个笔记。
————————————纯属原创,不喜勿喷。