
可以的
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
mapput("1", "v1");
mapput("2", "v2");
for (String key : mapkeySet()) {
Systemoutprintln("key= " + key + " and value= " + mapget(key));
}
}
package test;import javautil;/ 取得Map中的key的集合用的方法是keySet,返回的是Set,
取得Map中的value的集合用的方法是values,返回的是Collect。
值得一提的是,本题中是HashMap,如果改为TreeMap,keySet()方法返回的便会按着字母顺序排列,原因很简单,因为在TreeMap中即时按着这个顺序排列的。/public class Test_Map {
public static void main(String[] args) throws Exception {
Map map = new HashMap();
mapput("one", 1);mapput("two", 2);
mapput("three", 3);
//得到value的方法
Systemoutprintln("========得到value的方法========");
Collection c = mapvalues();
Systemoutprintln(c);
Iterator iter1 = (Iterator)mapvalues()iterator();
while(iter1hasNext()){
Systemoutprintln(iter1next());}//得到key的方法
Systemoutprintln("========得到key的方法========");
Collection s = mapkeySet();
Systemoutprintln(s);
Iterator iter2 = (Iterator)mapkeySet()iterator();
EL表达式怎么获取Map的动态key的方法:根据另外一个对象的id作为key来put,或者更加复杂的组合id+"string"作为一个key。
举例如下:
假设有一个情景:我们后台返回一个对象的list,我们根据对象的id作为key放一些关键的值作为value存入Map中。而前台负责显示Map中的关键指标。
我们的目的就是将大于80分的同学显示评级为良。接下来是前端的处理,先引入,标签。
大概就是这样子。如果map的key是一个复杂的组合,例如map(sgetId()+"-3班","良");这样子要获取key的话同样是上面的代码。
备注:如果要对字符串做更复杂的 *** 作,可以自己做标签库,或者使用<%@ taglib uri=">
EL是为了使JSP写起来更加简单。表达式语言的灵感来自于ECMAScript和XPath表达式语言,它提供了在JSP中简化表达式的方法,让Jsp的代码更加简化。
hm已是一个HashMap的引用。
如果你知道当前的这个key,可以通过hmget(key)方法来获得value。
获得key的方法hmkeySet();因为你不知道key是哪个其实该方法就是获得一个key的集合。
具体可以结合以下例子看看,里面有个迭代器用于遍历的。
Set<Integer> s=hmkeySet();//通过keySet方法可获得所有key的集合,放在一个容器Set里面。
Iterator<Integer> it=siterator();//获得一个迭代器引用it,通过siterator方法好比使“指针”指向
//set里面的第一个元素的位置
while(ithasNext())//set里面如果有下一个
{
Integer key=itnext();//返回当前set中的这个元素(因为set中都是放的key,“指针”指向下一个
Systemoutprintln(hmget(key));//利用hmget(key)方法获得该key对应的value
}
publicstaticvoidmain(String[]args){Mapmap=newHashMap();mapput("1","v1");mapput("2","v2");for(Stringkey:mapkeySet()){Systemoutprintln("key="+key+"andvalue="+mapget(key));}}取key和value
你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用MapEntry类,你可以得到在同一时间得到所有的信息。 标准的Map访问方法如下: Set keys = mapkeySet( ); if(keys != null) { Iterator iterator = keysiterator( )
在EL中,方括号运算符用来检索数组和集合的元素。对于实现 javautilMap 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。
在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${map['key']} 返回与 map标识符所引用的 Map 中的 "key" 键相关联的值。
当forEach 的items属性中的表达式的值是javautilMap时,则var中命名的变量的类型就是 javautilMapEntry。这时var=entry的话,用表达式${entrykey}取得键名。用表达${entryvalue}得到每个entry的值。这是因为javautilMapEntry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定。
<%
Map<String,String> map2 = new HashMap();
map2put("a","hello world");
map2put("b","this is map");
requestsetAttribute("map2",map2);
%>
<br>
键值对遍历 <br>
<c:forEach var="item" items="${map2}">
${itemkey} > ${itemvalue} <br>
</c:forEach>
键遍历 <br>
<c:forEach var="item" items="${map2}">
${itemkey}<br>
</c:forEach>
值遍历 <br>
<c:forEach var="item" items="${map2}">
${itemvalue}<br>
</c:forEach>
<body>
<br><br>
<%
List<String> list = new ArrayList<String>();
listadd("first");
listadd("second");
List<String> list2 = new ArrayList<String>();
list2add("aaaaaa");
list2add("bbbbbb");
Map<String,List<String>> map = new HashMap();
mapput("a",list);
mapput("b",list2);
requestsetAttribute("map",map);
%>
通过键获得列表值,并遍历列表 <br>
<c:forEach var="item" items="${map['a']}">
${item }<br>
</c:forEach><br>
<c:forEach var="item" items="${map['b']}">
${item }<br>
</c:forEach> <br>
map中值为列表,直接遍历列表中的每一项 <br>
<c:forEach var="item" items="${map}">
<c:forEach items="${itemvalue}" var="it">
${it }<br>
</c:forEach>
</c:forEach>
以上就是关于map中指定key的值能取出来吗全部的内容,包括:map中指定key的值能取出来吗、如何得到map中的KEY和VALUE、EL表达式怎么获取Map的动态key等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)