黑马程序员技术交流社区
标题:
entry理解?
[打印本页]
作者:
李柯
时间:
2012-3-28 13:02
标题:
entry理解?
大家如何理解Map集合中的entry?
作者:
唐林渊
时间:
2012-3-28 13:18
entry表示一组的意思 表示键值对的形式 而keyset表示的只是一个key,要想获取另一半要通过get(key)得到另一半.
作者:
izwj
时间:
2012-3-28 13:26
entrySet方法返回
Map
中所包含映射的
Set
视图。 Set 中的每个元素都是一个 Map.Entry 对象,可以使用 getKey() 和 getValue() 方法访问Map中的的键元素和值元素
作者:
贠(yun)靖
时间:
2012-3-28 13:44
Map 是一个接口, Entry也是一个接口 只不过这个接口是在Map类中定义的 而且该内部接口还是一个static的接口 所以可以直接用Map.Entry调用Entry接口中的方法
之所以把Entry接口定义在Map接口中 是因为在取map集合中的元素时可以直接访问到
还有就是 entrySet方法返回 Map 键和值所对应的关系 把这种关心封装成对象 并转换到Set集合中 所以就可以使用迭代器取出其中的关系对象(元素) 在通过
getKey 和getValue获取键和值
作者:
yangshang1
时间:
2012-3-28 18:01
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class EnitySetMap {
public static void main(String[] args) {
Map map=new HashMap();
map.put("asdf",1);
map.put("ggw",2);
//将Map转换为Map.Entry
Set set=map.entrySet();
//为了能让集合能按照值进行排列,这里把集合set转为Map.Entry类型的数组。
Map.Entry[] entries=(Map.Entry[]) set.toArray(new Map.Entry[set.size()] );
//按照指定的比较器和指定的排序规则对集合里的Map.Entry进行排序,这里是按照值从小到大的排序。
Arrays.sort(entries, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
Integer value1=(Integer) ((Map.Entry)o1).getValue();
Integer value2=(Integer) ((Map.Entry)o2).getValue();
return value1.compareTo(value2);
}
});
for(Map.Entry m:entries)
{
System.out.println(m.getValue());
}
}
}
作者:
邵中国
时间:
2012-3-28 20:58
自从把Map.Entry当成一个类后,我对map集合的理解比以前清楚多了
作者:
姚伟涛
时间:
2012-3-28 21:02
public static void work(Map<String, Student> map) {
Collection<Student> c = map.values();
Iterator it = c.iterator();
for (; it.hasNext();) {
System.out.println(it.next());
}
}
//利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性!!
public static void workByKeySet(Map<String, Student> map) {
Set<String> key = map.keySet();
for (Iterator it = key.iterator(); it.hasNext();) {
String s = (String) it.next();
System.out.println(map.get(s));
}
}
//比较复杂的一种遍历在这里,呵呵~~他很暴力哦,它的灵活性太强了,想得到什么就能得到什么~~
public static void workByEntry(Map<String, Student> map) {
Set<Map.Entry<String, Student>> set = map.entrySet();
for (Iterator<Map.Entry<String, Student>> it = set.iterator(); it.hasNext();) {
Map.Entry<String, Student> entry = (Map.Entry<String, Student>) it.next();
System.out.println(entry.getKey() + "--->" + entry.getValue());
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2