/*
HashSet底层是采用HasMap实现的 HasMap保存的是 键值对 就跟 C++中 <map>容器类似 keySet() 返回键的视图 values() 返回值的视图entrySet() 返回的每一个元素都是Map.Entry Map中一个静态的接口接收键值对
*/ import java.util.* ; class Test { private static HashMap<String,String> hm=new HashMap<String,String>() ; //JDK1.5后引入范式概念 public static void main(String []args) { hm.put("one","xiaoming") ;// 向其中添加键值对 因为没有实现Collection接口所以没有add方法 hm.put("two","xiaozhang") ; hm.put("three","xiaoli") ; hm.put("four","xiaoliu") ; System.out.println(hm.get("one")); System.out.println(hm.get("two")); System.out.println(hm.get("three")); System.out.println(hm.get("four")); Set s=hm.keySet() ;//返回键的视图 printElements(s); //输出键列表 Collection c=hm.values(); printElements(c); //迭代器的好处是可以输出多种类型的数据 输出值列表 Set ss=hm.entrySet() ;//返回Map.Entry 接口实现 printElements(ss); //输出键值对 利用迭代器 Iterator i=ss.iterator() ; //通过 Map.Entry静态接口 获取元素 while(i.hasNext()) { Map.Entry me=(Map.Entry)i.next() ;//强制转换 System.out.println(me.getKey()+":"+me.getValue()); } } static public void printElements(Collection c) { Iterator i=c.iterator() ; while(i.hasNext()) { System.out.println(i.next()); } } }