Java---29---Map中元素的两种取出方式

来源:互联网 发布:腾讯招聘程序员 编辑:程序博客网 时间:2024/04/28 07:17

Map中是没有迭代器的,那么Map中的元素是如何取出的呢?


有两种方法:

一种是通过Set <k> keySet ()

一种是通过 Set <Map.Entry<k,v>> entrySet ()



keySet:: 将map中所有的键存入到Set集合中。在通过map的getKey ()方法即可获得 value的值

entrySet: 返回此映射中包含的映射关系的Set视图。既包含键也包含值。 这个映射关系的数据类型就是Map.Entry.




public class MapDemo {public static void main(String[] args) {// TODO Auto-generated method stubkeySet_method();entrySet_method();}public static void entrySet_method() {Map<String, String> map = new HashMap<String, String>();map.put("01", "a5");map.put("02", "a1");map.put("03", "a2");map.put("04", "a3");map.put("05", "a4");Set<Map.Entry<String, String>> entryset = map.entrySet();Iterator<Map.Entry<String, String>> it = entryset.iterator();while (it.hasNext()) {Map.Entry<String, String> me = it.next();String key = me.getKey();String value = me.getValue();System.out.println("key : " + key + "    Value : " + value);}}public static void keySet_method() {Map<String, String> map = new HashMap<String, String>();map.put("01", "a5");map.put("02", "a1");map.put("03", "a2");map.put("04", "a3");map.put("05", "a4");Set<String> keyset = map.keySet();Iterator<String> it = keyset.iterator();while (it.hasNext()) {// 获取键String key = it.next();String value = map.get(key);System.out.println("key : " + key + "    Value : " + value);}}}



存入自定义元素,通过两种方式来取出:


class Stu implements Comparable<Stu> {private String name;private int age;public Stu(String name, int age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic boolean equals(Object obj) {// TODO Auto-generated method stubif (!(obj instanceof Stu))throw new ClassCastException("不是本类的对象");Stu s = (Stu) obj;return this.name.equals(s.name) && this.age == s.age;}@Overridepublic int hashCode() {// TODO Auto-generated method stubreturn name.hashCode() + age * 27;}public int compareTo(Stu o) {// TODO Auto-generated method stubInteger num = new Integer(this.age).compareTo(new Integer(o.age));if (num == 0)return this.name.compareTo(o.name);return num;}}public class MapDemo2 {public static void main(String[] args) {// TODO Auto-generated method stubMap<Stu, String> map = new HashMap<Stu, String>();map.put(new Stu("01", 10), "beijing");map.put(new Stu("02", 9), "shanghai");map.put(new Stu("03", 8), "huangzhou");map.put(new Stu("04", 15), "tianjin");Set<Stu> keySet = map.keySet();Iterator<Stu> it = keySet.iterator();while (it.hasNext()) {Stu key = it.next();String value = map.get(key);System.out.println("key : " + key.getName() + "---" + key.getAge()+ "    Value : " + value);}/*************************************************/Set<Map.Entry<Stu, String>> entrySet = map.entrySet();Iterator<Map.Entry<Stu, String>> iterator = entrySet.iterator();while (iterator.hasNext()) {Map.Entry<Stu, String> me = iterator.next();Stu key = me.getKey();String value = me.getValue();System.out.println("key : " + key.getName() + "---" + key.getAge()+ "    Value : " + value);}}}


1 0
原创粉丝点击