1.Map是用来保存具有映射关系的数据(Key------Value);
2.Key用Set来存放,不可重复;Value用Collection存放,可以重复;一个Key配一个Value为一个Entry对,Entry对用Set来进行存放,同样不可重复;
3.
public class HshMp {
@Test
public void MM(){
Map mmp=new HashMap();
mmp.put("kobe",24);
mmp.put("Dunkun",21);
mmp.put("Jordan",45);
mmp.put("Air Jordan",23);
mmp.put("Kobe",10);
mmp.put(new Beauty(23,"Gary Grant"),"Hitchcock");
System.out.println(mmp.size());
System.out.println(mmp);
System.out.println("$$$$$$$$$$$$$$$$$$$$");
mmp.remove("Dunkun");
System.out.println(mmp);
System.out.println("$$$$$$$$$$$$$$$$$$$$");
System.out.println(mmp.get("Kobe"));
System.out.println("$$$$$$$$$$$$$$$$$$$$");
//void putAll(Map map) 将map中的所有元素添加进当前集合
//void clear() 清空
System.out.println(mmp.containsKey("kobe"));
System.out.println(mmp.containsKey("kobebryant"));
System.out.println(mmp.containsValue("kobe"));
System.out.println(mmp.containsValue(23));
System.out.println("$$$$$$$$$$$$$$$$$$$$");
//Key
Set set=mmp.keySet();
for(Object obj:set){
System.out.println(obj);
}
System.out.println("$$$$$$$$$$$$$$$$$$$$");
//Value
Collection co=mmp.values();
for(Object o:co){
System.out.println(o);
}
System.out.println("$$$$$$$$$$$$$$$$$$$$");
//Enrty
Set pair=mmp.entrySet();
for(Object o:pair){
System.out.println(o+"-------->"+mmp.get(o));
}
System.out.println("$$$$$$$$$$$$$$$$$$$$");
Set couple=mmp.entrySet();
for(Object o:couple){
Map.Entry entry=(Map.Entry)o;
System.out.println(entry.getKey()+"======>"+entry.getValue());
}
}
}
class Beauty implements Comparable{
private Integer BeautyNum;
private String name;
public Beauty(Integer BeautyNum, String name) {
this.BeautyNum = BeautyNum;
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getBeautyNum() {
return BeautyNum;
}
public void setBeautyNum(Integer beautyNum) {
BeautyNum = beautyNum;
}
@Override
public String toString() {
return "Name[name = " + this.getName() + "] BeautyNumber[Num = " + this.getBeautyNum()+"]";
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Beauty mm = (Beauty)obj;
if (name == null) {
if (mm.name != null)
return false;
} else if (!name.equals(mm.name))
return false;
if (BeautyNum != mm.BeautyNum)
return false;
return true;
}
@Override
public int hashCode() {
final int kobe = 31;
int iverson = 3;
iverson = kobe * iverson + BeautyNum;
iverson = kobe * iverson + ((name == null) ? 0 : name.hashCode());
return iverson;
}
@Override
public int compareTo(Object o) {
if(o instanceof Beauty){
Beauty mm=(Beauty)o;
int num=this.getBeautyNum().compareTo(mm.getBeautyNum());
if(num==0){
return this.getName().compareTo(mm.getName());
}
else
return num;
}
return 0;
}
}
6
{Name[name = Gary Grant] BeautyNumber[Num = 23]=Hitchcock, Jordan=45, Dunkun=21, Kobe=10, Air Jordan=23, kobe=24}
$$$$$$$$$$$$$$$$$$$$
{Name[name = Gary Grant] BeautyNumber[Num = 23]=Hitchcock, Jordan=45, Kobe=10, Air Jordan=23, kobe=24}
$$$$$$$$$$$$$$$$$$$$
10
$$$$$$$$$$$$$$$$$$$$
true
false
false
true
$$$$$$$$$$$$$$$$$$$$
Name[name = Gary Grant] BeautyNumber[Num = 23]
Jordan
Kobe
Air Jordan
kobe
$$$$$$$$$$$$$$$$$$$$
Hitchcock
45
10
23
24
$$$$$$$$$$$$$$$$$$$$
Name[name = Gary Grant] BeautyNumber[Num = 23]=Hitchcock-------->null
Jordan=45-------->null
Kobe=10-------->null
Air Jordan=23-------->null
kobe=24-------->null
$$$$$$$$$$$$$$$$$$$$
Name[name = Gary Grant] BeautyNumber[Num = 23]======>Hitchcock
Jordan======>45
Kobe======>10
Air Jordan======>23
kobe======>24