黑马程序员技术交流社区
标题:
这两种方式有什么区别
[打印本页]
作者:
马上都有
时间:
2014-4-16 22:45
标题:
这两种方式有什么区别
Set<Entry<String, Integer>> entryset=entry.entrySet();
for(Entry<String, Integer> ent:entryset){
System.out.println(ent);
和
Set<Map.Entry<String, Integer>> entryset=entry.entrySet();
for(Map.Entry<String, Integer> ent:entryset){
System.out.println(ent);
作者:
月光海
时间:
2014-4-16 23:20
Set<Entry<String, Integer>> entryset=entry.entrySet();
for(Entry<String, Integer> ent:entryset){
System.out.println(ent);
复制代码
没有这个方法把,entrySet方法返回的是包含映射关系的set集合,映射关系是用Map.Entry<K,V>来表示的,你去查下API,只有Map.Entry<K,V>,而没有Entry<K,V>,所以Entry<K,V>是不能放到set集合中的,他不能代表映射关系,我是这么认为的
作者:
孙旌棋
时间:
2014-4-20 16:38
这个是第一种方法, 原理就是把所有的key存到集合里, 然后通过键去到所有的值
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class SunJingQi {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("01", "孙旌棋");
map.put("02", "孙旌棋");
map.put("03", "孙旌棋");
// 先获取Map集合的所有键的Set集合
Set<String> keySet = map.keySet();
// 有了Set集合,就可以获取其迭代器
for (Iterator<String> it = keySet.iterator(); it.hasNext();) {
String key = it.next();
String value = map.get(key);
sop(key + "=" + value);
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
复制代码
作者:
孙旌棋
时间:
2014-4-20 16:40
这个是第二种, 把映射关系存到集合里, 然后取出来, 你问什么是映射关系, 就好像是户口本一样, 我只要拿到户口本, 就知道谁跟谁结婚了一样, 这就是映射关系
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class SunJingQi {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("01", "孙旌棋");
map.put("02", "孙旌棋");
map.put("03", "孙旌棋");
// 取出 Map集合的映射关系,存入到Set集合
Set<Map.Entry<String, String>> entrySet = map.entrySet();
for (Iterator<Map.Entry<String, String>> it = entrySet.iterator(); it.hasNext();) {
Map.Entry<String, String> me = it.next();
String key = me.getKey();
String value = me.getValue();
sop(key + "=" + value);
}
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
复制代码
作者:
孙旌棋
时间:
2014-4-20 16:42
如果只是为了遍历, 那用这么麻烦, 你问我什么是遍历? 就是把集合里的对象取出来, 使用高级for()循环轻松搞定
import java.util.HashMap;
import java.util.Map;
public class SunJingQi {
public static void main(String[] args) {
HashMap<Integer, String> hm = new HashMap<Integer, String>();
hm.put(01, "孙旌棋");
hm.put(02, "孙旌棋");
hm.put(03, "孙旌棋");
// Set<Integer> keySet = hm.keySet();
// for (Integer i : keySet) {
for (Integer i : hm.keySet()) {
System.out.println(i + "=" + hm.get(i));
}
// Set<Map.Entry<Integer, String>> entrySet = hm.entrySet();
// for (Map.Entry<Integer, String> me : entrySet) {
for (Map.Entry<Integer, String> me : hm.entrySet()) {
System.out.println(me.getKey() + "=" + me.getValue());
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2