黑马程序员_集合HashMap练习:获取Map集合元素的两种方式:keySet()和entrySet()方法
2015-04-15 09:45
519 查看
今天学习了Map集合。
Map是一种以键值对的形式存在的集合,其中每个键映射到一个值,几乎所有通用 Map 都使用哈希映射。位于java.util包中,其子类有HashMap,TreeMap。HashMap缺省的情况下是线程非安全的;当多线程访问时可能需要提供同步机制,key和value的值允许为null,键值允许重复,没有顺序。
对于map集合遍历元素的两种方式进行了练习,结果如下:
Map是一种以键值对的形式存在的集合,其中每个键映射到一个值,几乎所有通用 Map 都使用哈希映射。位于java.util包中,其子类有HashMap,TreeMap。HashMap缺省的情况下是线程非安全的;当多线程访问时可能需要提供同步机制,key和value的值允许为null,键值允许重复,没有顺序。
对于map集合遍历元素的两种方式进行了练习,结果如下:
package com.itpractice; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; public class StudentMapDemo { public static void main(String[] args) { HashMap<Student, String> hm = new HashMap<Student, String>(); hm.put(new Student("jinglt", 27), "三河"); hm.put(new Student("yangq", 26), "临沂"); hm.put(new Student("liul", 25), "武汉"); hm.put(new Student("jinglt", 24), "三河"); // 第一种取出方式:keySet() // Set<Student> keySet = hm.keySet(); Iterator<Student> it1 = hm.keySet().iterator(); while (it1.hasNext()) { Student s = it1.next(); System.out.println("学生姓名:" + s.getName() + " *** " + "学生年龄:" + s.getAge() + " *** " + "学生地址:" + hm.get(s)); } System.out.println("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"); // 第二种取出方式:entrySet() //Set<Map.Entry<Student, String>> entrySet = hm.entrySet(); Iterator<Map.Entry<Student, String>> it2 = hm.entrySet().iterator(); while (it2.hasNext()) { Map.Entry<Student, String> me = it2.next(); System.out.println("学生姓名:" + me.getKey().getName() + "---" + "学生年龄:" + me.getKey().getAge() + "---" + "学生地址:" + me.getValue()); } } } /** * 定义一个学生类 * * @author Administrator * */ class Student implements Comparable<Student> { /** * 学生姓名 */ private String name; /** * 学生年龄 */ private int age; /** * 无参构造函数 */ public Student() { super(); } /** * 构造函数 */ public Student(String name, int age) { this.name = name; this.age = age; } /** * getXxx()和setXxx()方法 */ 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; } /** * 重写toString()方法 */ @Override public String toString() { return "student [name=" + name + ", age=" + age + "]"; } /** * 重写hashCode()方法 */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } /** * 重写equals()方法 */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Student other = (Student) obj; if (age != other.age) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } /** * 覆盖父类的compareTo()方法 */ @Override public int compareTo(Student s) { int num = new Integer(this.age).compareTo(s.age); if (num == 0) return this.name.compareTo(s.name); return num; } }
相关文章推荐
- Map集合的两种获取元素的方式:keySet()和entrySet()方法
- (73)Map公共方法演示、Map集合获得键值对的两种方法:entrySet和keySet。Map中元素唯一性练习
- 【java编程】Map集合之HashMap--KeySet和EntrySet的两种取出方式
- Map集合的四种遍历方式以及Map集合中value()方法与keySet()、entrySet()区别
- 黑马程序员---Map集合取出两种方式,HashMap,TreeMap,Collections工具类,数组和集合的互转,
- Map集合的两种取出方式(keySet、entrySet)
- 牛客网Java刷题知识点之Map的两种取值方式keySet和entrySet、HashMap 、Hashtable、TreeMap、LinkedHashMap、ConcurrentHashMap 、WeakHashMap
- Map集合中的两种取出方式keySet和entrySet
- java中map集合的两种取出方式keySet和entrySet
- 【java编程】Map集合之hashMap两种取出方式练习
- Map遍历的两种方式(首推entrySet())--遍历Map时删除元素的方法
- 黑马程序员--Map集合中两个重要的取值方法---keySet()和entrySet()
- 集合框架——Map的两种取出方式(keySet和entrySet)
- 黑马程序员------集合(No.1)(Map集合、Map共性方法、keySet、entrySet)
- Java Map -entryset 另一种获取Map中全部元素的方法
- 集合部分:Map集合的遍历。方式一:get()方法;方式二:entrySet()方法
- Java中遍历Map的两种方法:keySet和entrySet
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别
- Map集合中value()方法与keySet()、entrySet()区别