package Test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Maptest {
/*
* Map與Collection並列,數據關係:key-value
* Map的key用set存放,唯一,value可重複,相當於collection存儲,兩者組合後爲Entry,是不可重複的
* list是collection的子接口,而collection與map並列
*
*
* map接口,不可進行實例化,需要new其實現類
* 以key-value 方式進行存儲,key是唯一的,類似於學號,value可重複,類似於學生姓名
* map接口如何使用:
* HashMap 運行null鍵與null值,但key爲空只能有一次,value爲空則無妨
* 判斷相等標準
* 兩個key通過equal方法返回true,hashCode也相等,判key是否相同
* 兩個value通過equal判斷即可
* 另一個實現類 Hashtable 已淘汰
* 其不允許key null 與value null
* Propeties類是其子類,在數據庫中使用 會將封裝用戶名,密碼的代碼封裝在Propeties文件中,在使用時調用
* 即讀取xxxx.Propeties文件信息
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
test2();
}
public static void test2() {
Map map=new HashMap();//map也是堆裏的地址值
//put(key,value);鍵值對方式添加元素到集合
map.put(123, 123);
map.put(null,null);
map.put("abc", "abc");
map.put("1001","123");
map.remove("abc");//遍歷
//Set keySet();
System.out.println("=================================");
Set set=map.keySet();
for(Object s:set) {//無序性,set
System.out.println(s);
}
System.out.println("==================================");
Collection values=map.values();//map的值是collection類型,collection的無序是由於key導致的
for(Object v:values) {
System.out.println(v);
}
System.out.println("Key==================================");
//遍歷map的例方法
Set key=map.keySet();
for(Object o:key) {
System.out.println(o+"--"+map.get(o));
}
System.out.println("entrySet==================================");
//使用entrySet方法
Set set1=map.entrySet();//因爲key與value組合後即爲enteySet
for(Object o:set1)
System.out.println(o);
for(Object o:set1) {
Entry entry=(Entry) o;
System.out.println(entry.getKey()+"--"+entry.getValue());
}
}
public static void test() {
Map map=new HashMap();//map也是堆裏的地址值
//put(key,value);鍵值對方式添加元素到集合
map.put(123, 123);
map.put(null,null);
map.put("abc", "abc");
map.put(123, "中國加油");
System.out.println(map);//由於key不可重複,故其會覆蓋,map也重寫了toString方法,否則輸出地址值
/*
* HashMap();
* key用set存儲,不可重複,value用collection存儲,可以重複
* 一個key -value 等於一個Entery ,不可重複 如果key出錯重複,把上一個覆蓋
* 判斷標準是調用該對象的equals方法,此時,若toString被重寫,則會比較值,否則比較地址
*/
map.put(new String("aaa"),"aaa");
map.put(new String("aaa"),"bbb");
System.out.println(map);//使用equals方法判斷 String類重寫了String方法,故比較的是值,而==是比較地址
map.put(new StudentTest("鵬翔"), "商城");
map.put(new StudentTest("鵬翔"), "科技");//由於該Student未寫toString方法,故判斷地址,
System.out.println(map);
System.out.println(map.hashCode());
}
}
Java實訓學習之Map
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.