java map(Java中便历Map的几种方法)
很多朋友对于java map和Java中便历Map的几种方法不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
java中Map<,>是什么意思
<?,?>这个是泛型,在实例应用的时候,一个集合一般只存储一种类型的数据,所以我们可以通过泛型来约束集合中元素的类型,这个在多处都可以使用,比如在Collection<T>集合和Map<T,T>中通过泛型约束存储元素的数据类型;
以下解释为什么泛型中只使用对象来约束数据类型:
因为集合只能存储引用类型数据,所以在泛型中的参数都是对象,如果后面对应的是基本数据类型,那就要在泛型中把基本数据类型转换成包装类对象,即使不是集合,比如Comparator<T>比较器里面的T也应该要是对象的吧,所以我认为泛型中是使用对象进行数据类型的约束的,个人观点,可以讨论,但不要骂人的哈!
javamap的用法
javamap的用法如下;
1、void clear():删除Map中所有键值对。
2、boolean containsKey(Object key):查询Map中是否包含指定key,如果包含则返回true。
3、boolean containsValue(Object value):查询Map中是否包含指定value,如果包含则返回true。
4、Set entrySet():返回Map中所包含的键值对所组成的Set集合,每个集合元素都是Map.Entry对象(Entry是Map的内部类)。
5、Object get(Object key):返回指定key所对应的value,如Map中不包含key则返回null。
6、boolean isEmpty():查询Map是否为空,如果空则返回true。
7、Set keySet():返回该Map中所有key所组成的set集合。
8、Object put(Object key,Object value):添加一个键值对,如果已有一个相同的key值则新的键值对覆盖旧的键值对。
9、void putAll(Map m):将指定Map中的键值对复制到Map中。
10、Object remove(Object key):删除指定key所对应的键值对,返回可以所关联的value,如果key不存在,返回null。
11、int size():返回该Map里的键值对的个数。
12、Collection values():返回该Map里所有value组成的Collection。
Map中包含一个内部类:Entry。该类封装了一个键值对,它包含了三个方法:
1、Object getKey():返回该Entry里包含的key值。
2、Object getValeu():返回该Entry里包含的value值。
3、Object setValue(V value):设置该Entry里包含的value值,并返回新设置的value值。
Java中便历Map的几种方法
常见的Map遍历有下面四种方法:
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map.Entry;
publicclassMapDemo{
publicstaticvoidmain(String[]args){
//准备好需要遍历的Map
HashMap<String,Integer>map=newHashMap<String,Integer>();
map.put("Tom",85);
map.put("Jack",97);
test1(map);
test2(map);
test3(map);
test4(map);
}
//方法一:迭代器方式
//特点:效率高,速度快,但是代码量多
publicstaticvoidtest1(HashMap<String,Integer>map){
Iterator<Entry<String,Integer>>it=map.entrySet().iterator();
while(it.hasNext()){
Entry<String,Integer>e=it.next();
System.out.println("name:"+e.getKey()+"\tscore:"+e.getValue());
}
}
//方法二:map.entrySet()for循环
//特点:效率也较高,速度较快,且写法比方法一简单
publicstaticvoidtest2(HashMap<String,Integer>map){
for(Entry<String,Integer>e:map.entrySet()){
System.out.println("name:"+e.getKey()+"\tscore:"+e.getValue());
}
}
//方法3map.keySetfor循环
//特点:效率较慢
publicstaticvoidtest3(HashMap<String,Integer>map){
for(Stringkey:map.keySet()){
System.out.println("name:"+key+"\tscore:"+map.get(key));
}
}
//方法四:forEach
//特点速度较慢,但是代码少,简洁;(需要Java8或以上版本的支持)
publicstaticvoidtest4(HashMap<String,Integer>map){
map.forEach((k,v)->System.out.println("name:"+k+"\tscore:"+v));
}
}
四种方法之间的效率比较
(test1≈test2)>(test3≈test4)
推荐:数据量特别大的时候使用方法1:代码长,但是效率高
数据量较少的,那么使用方法4:代码简洁而优雅~
java中Map类有什么作用,具体怎么用呢
Map以按键/数值对的形式存储数据,和数组非常相似,在数组中存在的索引,它们本身也是对象。
Map的接口
Map---实现Map
Map.Entry--Map的内部类,描述Map中的按键/数值对。
SortedMap---扩展Map,使按键保持升序排列
使用时,一般是选择Map的子类,而不直接用Map类。
以HashMap为例。
publicstaticvoidmain(Stringargs[])
{
HashMaphashmap=newHashMap();
hashmap.put("Item0","Value0");//往map中放入key是Item0,value是Value0的一个元素
hashmap.put("Item1","Value1");//往map中放入key是Item1,value是Value1的一个元素
}
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!