黑马程序员技术交流社区
标题:
关于map迭代的问题
[打印本页]
作者:
danerchen
时间:
2014-5-6 00:17
标题:
关于map迭代的问题
我一般要把Map迭代的话都是用这个代码:
Set entrySet = map.entrySet();
Iterator it = entrySet.iterator();
while(iter1.hasNext()){
Map.Entry me = (Map.Entry)iter1.next();
System.out.println("key=" + me.getKey() + " value=" + me.getValue());
但是当我想用增强for循环的时候就只能写:
for(Entry<K,V>entry:map.entryset()){}
为什么不能写for(Set<Map.Entry<K,V>> entry:map.entryset())?
查看API文档里的Map接口的entrySet()方法,它返回的的确是一个Set集合啊,为什么这里编译不能通过?
还有Entry<K,V>是什么类啊?为什么API文档里找不到啊?
求高手解答
作者:
你为谁归来
时间:
2014-5-6 01:37
public class Demo5
{
public static void main(String[] args)
{
Map<Integer, String> m = new HashMap();
m.put(1, "111");
m.put(2, "222");
m.put(3, "333");
m.put(4, "444");
m.put(5, "555");
Set entrySet = m.entrySet();
Iterator it = entrySet.iterator();
while(it.hasNext())
{
Map.Entry me = (Map.Entry)it.next();
System.out.println("key=" + me.getKey() + " value=" + me.getValue());
}
System.out.println("-------");
for(Entry<Integer, String> o : m.entrySet() )
{
System.out.println("key=" + o.getKey() + " value=" + o.getValue());
}
}
复制代码
set底层调用的还是map集合。而且你使用高级for循环的话先指定返回数据的类型。
Entry<K,V>不是什么类,Map.Entry<K,V>这是一个接口。
作者:
ς高眼光の目标
时间:
2014-5-6 01:49
import java.util.*;
class MapTest6
{
public static void main(String[] args)
{
List<List<Student>> shiyan = new ArrayList<List<Student>>();
List<Student> java01 = new ArrayList<Student>();
List<Student> java02 = new ArrayList<Student>();
shiyan.add("java01"+java01);
shiyan.add(java02);
java01.add(new Student("01","lisi1"));
java01.add(new Student("02","lisi1"));
java02.add(new Student("001","lisi001"));
java02.add(new Student("002","lisi002"));
//MapShow(java01);
Iterator<List<Student>> it =shiyan.iterator();
while (it.hasNext())
{
List<Student> li =it.next();
System.out.println(li);
MapShow(li);
}
}
public static void MapShow(List<Student> room)
{
Iterator<Student> it = room.iterator();
while (it.hasNext())
{
Student id =it.next();
System.out.println(id);
}
}
}
class Student
{
private String name;
private String age;
Student(String name,String age)
{
this.name=name;
this.age=age;
}
public String getName()
{
return name;
}
public String getAge()
{
return age;
}
public String toString()
{
return name+age;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2