一、HashMap和TreeMap的异同:
HashMap:线程非安全,数组方式存储Key/Value。不自动排列,允许Null作为Key和Value值,Key不可以重复,Value允许重复,即一数值多键值。TreeMap:线程非安全,自动排列。不允许Null作为Key和Value,Key不可以重复,Value允许重复。
不同点:HashMap是无序的即不自动排列,允许Null作为Key和Value值,TreeMap是有序的,即自动排列,不允许Null作为...。
相同点:线程非安全、Key不可以重复、Value可以重复。
二、HashMap和TreeMap的常用方法:
增:1.<Object> put( Key,Value ) 2. Clone( )克隆;
删:1.<boolean> remove(Object o); 2. <Object> clear( ) 清空;
改:1. <Object> put( Key,Value );
查:1.<Object> get(Object o)获取指定键值对应值; 2.<int>m size( );集合内数据长度; 3.<Set<Object>>KeySet()获取集合内所有键值,values( ) 获取集合内所有Value值。4.<boolean> containsKey(Object o)/containsValue(Object o);查找集合内的键值或数组是否不包含指定元素。
public static void main(String[] args) {
HashMap<String,Object> hm=new HashMap<String,Object>();
hm.put("A", "ABC");//添加
System.out.println("1.原Value值:"+hm);
hm.put("A", "DEF");//更改
System.out.println("2.更改后Value值:"+hm);
//相同值(value)可以对应不同键值(key)
hm.put("B", "DEF");
System.out.println("3.相同value:"+hm);
HashMap<String,Object> sclone=(HashMap<String, Object>) hm.clone();//克隆
Object oa=hm.remove("B");//移除并接收值
System.out.println("4.移除值Key:"+oa+" 现集合:"+hm);
Object ob=hm.get("A");//获取键对应值
System.out.println("5.A键对应值:"+ob);
Set<String> key=sclone.keySet();//接收键值
Collection<Object> values=sclone.values();//接收键值
System.out.println("6.集合内所有键值:"+key+"值:"+values);
//查看集合内是否包含指定键值
if(sclone.containsKey("A"))
System.out.println("7.集合内键值包含A");
//查看集合内是否包含指定数据
if(sclone.containsValue("DEF"))
System.out.println("8.集合内数值包含DEF");
}