首页编程java map(Java中便历Map的几种方法)

java map(Java中便历Map的几种方法)

编程之家2023-11-0771次浏览

很多朋友对于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。

java map(Java中便历Map的几种方法)

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值则新的键值对覆盖旧的键值对。

java map(Java中便历Map的几种方法)

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,本文到此结束,如果可以帮助到大家,还望关注本站哦!

阿里云云市场(阿里云怎么获取设备几天的数据)命名管道 命名管道是什么意思