黑马程序员技术交流社区
标题:
技术问题
[打印本页]
作者:
dengwenjing58
时间:
2015-12-5 14:11
标题:
技术问题
1. Map
集合的遍历方式?
作者:
zqiang
时间:
2015-12-5 14:24
有两种遍历方式,
一种是通过keySet方法获取键的集合,遍历键的集合,在通过get方法获取传入键获取值。
一种是entryset方法获取键值对对象的集合,在遍历获取的集合
作者:
jymheima
时间:
2015-12-5 18:13
两个 遍历方式都必须会哦 ,如果不会写的话 可以去看看视频哦
作者:
二十七杯酒
时间:
2015-12-5 19:36
1 //创建集合对象
HashMap<String,String> hm=new HashMap<String, String>();
//创建并添加元素
hm.put("it001", "刘备");
hm.put("it002","曹操");
hm.put("it003","孙权");
hm.put("it004", "乔布斯");
//遍历,第一种键找值
Set<String> set=hm.keySet();
for(String key:set){
String values=hm.get(key);
System.out.println(key+"--"+values);
}
//第二种键值对对象找键和值
Set<Map.Entry<String, String>> set2=hm.entrySet();
for(Map.Entry<String, String> me:set2){
String key=me.getKey();
String values=me.getValue();
System.out.println(key+"--"+values);
}
作者:
jiangshicun007
时间:
2015-12-6 20:48
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String, Integer> map = new HashMap<>();
Integer i1 = map.put("张三", 23);
Integer i2 = map.put("李四", 24);
Integer i3 = map.put("王五", 25);
Integer i4 = map.put("赵六", 26);
/*
* Set<String>set=map.keySet();
* Iterator<String>it=set.iterator();
* while(it.hasNext()) {
* String key =it.next();
* Integer value=map.get(key);
* System.out.println(key+"="+value); }
*/
/*
* for (String key : map.keySet()) {
* System.out.println(key+""+map.get(key)); }
*/
/*Set<Map.Entry<String, Integer>> set = map.entrySet();
Iterator<Map.Entry<String, Integer>> it = set.iterator();
while (it.hasNext()) {
Map.Entry<String, Integer> en = it.next();
System.out.println(en.getKey() + en.getValue());
}*/
for (Map.Entry<String, Integer>en : map.entrySet()) {
System.out.println(en.getKey()+"="+en.getValue());
}
}
希望能帮到你!
作者:
Id_820
时间:
2015-12-6 21:11
Map<String, String> map = new HashMap<String, String>();
map.put("tom", "23"); //向map中添加数据
map.put("Jerry", "233");
//第一种方式
//获取map集合中所有键的set集合
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();
//遍历
while(it.hasNext()){
String key = it.next(); //获取key
String value = map.get(key); //根据key获取value
System.out.println(key + " : " +value);
}
//第二种方式
//将Map中的映射关系,存到set中
Set<Map.Entry<String, String>> entries = map.entrySet();
Iterator<Map.Entry<String, String>> iterator = entries.iterator();
while(iterator.hasNext()){
Map.Entry<String, String> en = iterator.next();
String key = en.getKey();
String value = en.getValue();
System.out.println(key + " : " + value);
}
作者:
Weidan
时间:
2015-12-7 19:22
楼上都说完了...
作者:
fzh945
时间:
2015-12-7 22:43
两种,看视频就有
作者:
ios学者
时间:
2015-12-8 12:32
Map是一种以键值对的形式存在的集合,其中每个键映射到一个值,几乎所有通用 Map 都使用哈希映射。位于java.util包中。其子类有HashMap,TreeMap。HashMap缺省的情况下是线程非安全的;当多线程访问时可能需要提供同步机制,key和value的值允许为null,键值允许重复,没有顺序。
普通JAVA类遍历Map集合
Map map=new HashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.keySet();//键集合
map.values();//值集合
map.entrySet();//键值集合
//遍历键,通过键取值
Set set = map.keySet();
for (Object key : set) {
System.out.println("键:"+key+" 值:"+map.get(key));
}
//遍历键集合
Iterator it=map.keySet().iterator();
while(it.hasNext()){
System.out.println("键:"+it.next());
}
//遍历键值集合
Iterator it2=map.entrySet().iterator();
while(it2.hasNext()){
System.out.println(it2.next());
}
使用EL表达式遍历Map集合
<%
Map map=new HashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
pageContext.setAttribute("map",map);
%>
<c:forEach items="${map}" var="m">
键:${m.key}
值:${m.value}
</c:forEach>
使用EL表达式遍历Map集合(值存放的是对象)
<%
Person p=new Person();
p.setAddress("aa");
p.setName("aa");
Person p2=new Person();
p2.setAddress("bb");
p2.setName("bb");
Person p3=new Person();
p3.setAddress("cc");
p3.setName("cc");
Map map=new HashMap();
map.put("a", p);
map.put("b", p2);
map.put("c", p3);
pageContext.setAttribute("map",map);
%>
<c:forEach items="${map}" var="m">
${m.key}
${m.value.name} //m.value取得的是对象的内存地址,所以可以直接用m.value.name(name为Person对象的属性)
</c:forEach>
使用struts标签<logic:iterate />遍历
<%
List list=new ArrayList();
list.add("aa");
list.add("bb");
list.add("cc");
Map map=new HashMap();
map.put("a", list);
pageContext.setAttribute("map",map);
%>
<logic:iterate id="m" name="map">
键:${m.key}
<logic:iterate id="childm" name="m" property="value">内层标签的name对应的是外层标签的id,一定要加上property="value"
值:${childm}
</logic:iterate>
</logic:iterate>
作者:
5个半柠檬c
时间:
2015-12-9 14:09
可以用map的keyset()和entryset()方法。。。前者是以key为集合属性的形式,或者是以键值为对应关系的,希望能帮到你,出门在外,大爷能不能把一黑马币赏给我呢!!!
作者:
唐洪超
时间:
2015-12-15 00:46
对于Map的三种方式遍历 1.keySet() 2.values() 3.entrySet()
三种方式得到Set之后,都可以使用 foreach或者iterator, 不能使用for,因为数据结构决定的
作者:
1066715808
时间:
2015-12-31 10:06
这个又学习了
作者:
cj286
时间:
2016-1-5 15:44
keyset()和entryset()方法,两种
作者:
wljr339
时间:
2016-1-13 00:03
有四种方法:
1、用for循环遍历
2、用迭代器遍历
3、用keySet()遍历
4、用entrySet()遍历
作者:
695874419
时间:
2016-1-14 16:35
package com.jackey.topic;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
//循环遍历map的方法
public class CircleMap {
public static void main(String[] args) {
Map<String, Integer> tempMap = new HashMap<String, Integer>();
tempMap.put("a", 1);
tempMap.put("b", 2);
tempMap.put("c", 3);
// JDK1.4中
// 遍历方法一 hashmap entrySet() 遍历
System.out.println("方法一");
Iterator it = tempMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// JDK1.5中,应用新特性For-Each循环
// 遍历方法二
System.out.println("方法二");
for (Map.Entry<String, Integer> entry : tempMap.entrySet()) {
String key = entry.getKey().toString();
String value = entry.getValue().toString();
System.out.println("key=" + key + " value=" + value);
}
System.out.println("");
// 遍历方法三 hashmap keySet() 遍历
System.out.println("方法三");
for (Iterator i = tempMap.keySet().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 循环输出key
System.out.println("key=" + obj + " value=" + tempMap.get(obj));
}
for (Iterator i = tempMap.values().iterator(); i.hasNext();) {
Object obj = i.next();
System.out.println(obj);// 循环输出value
}
System.out.println("");
// 遍历方法四 treemap keySet()遍历
System.out.println("方法四");
for (Object o : tempMap.keySet()) {
System.out.println("key=" + o + " value=" + tempMap.get(o));
}
System.out.println("11111");
// java如何遍历Map <String, ArrayList> map = new HashMap <String,
// ArrayList>();
System.out
.println("java 遍历Map <String, ArrayList> map = new HashMap
<String, ArrayList>();");
Map<String, ArrayList> map = new HashMap<String, ArrayList>();
Set<String> keys = map.keySet();
Iterator<String> iterator = keys.iterator();
while (iterator.hasNext()) {
String key = iterator.next();
ArrayList arrayList = map.get(key);
for (Object o : arrayList) {
System.out.println(o + "遍历过程");
}
}
System.out.println("2222");
Map<String, List> mapList = new HashMap<String, List>();
for (Map.Entry entry : mapList.entrySet()) {
String key = entry.getKey().toString();
List<String> values = (List) entry.getValue();
for (String value : values) {
System.out.println(key + " --> " + value);
}
}
}
}
作者:
胡思乱想的猫
时间:
2016-1-18 23:06
有keySet(); 和 entrySet();方法
作者:
梁志斌
时间:
2016-1-19 01:45
上面的刷分狂魔把我要说的都说完了~~
作者:
jiaoshaowei
时间:
2016-3-18 22:06
1.声明一个map: Map map = new HashMap();
2.向map中放值,注意:map是key-value的形式存放的.如:
map.put(”sa”,”dd”);
3.从map中取值:String str = map.get(”sa”).toString();结果是:str = ”dd”;
4.遍历一个map,从中取得key 和value
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2