/*
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());
}
}
}