您的位置:首页 > 编程语言 > Java开发

java中的map接口

2015-10-26 14:03 423 查看
在上一篇博客中稍微提到java中的map接口,

跟python中的字典类似,不得不说python作为一门脚本语言,语法比java简洁了很多,要不是追求那点性能,

也不用来折腾java,哈哈,还是跟着企业的需求走,在china上就这样,啰嗦了,具体看看关系图



Map接口常用的子类包括:

HashMap:无序存放的,是新的操作类,key不允许重复

Hashtable:无序存放的,是旧的操作类,key不允许重复

TreeMap:可以排序的Map集合,是按照集合中的key排序的,key不许愿重复

WeakHashMap:是弱引用的Map集合,当集合中的某些内容不再使用时清除掉无用的数据,使用gc进行回收

IdentityhashMap:key可以重读的Map集合

HashMap与Hashtable具体操作如下:

package test;
import  java.util.Map;
import  java.util.HashMap;
import  java.util.Hashtable;
import java.util.WeakHashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Collection;
public class MapDemo {
public  static void main(String args[]){
System.out.println("--------HashMap的基本操作----------");
Map<String, String> map=new HashMap<String,String>();
map.put("name", "周美旭");
map.put("sex","男");
map.put("address","江西省");
String name=map.get("name");
System.out.println("得到的名字是:"+name);
System.out.println("判断是否包含value-->江西省值:"+(map.containsValue("江西省")?"存在":"不存在"));
System.out.println("判断是否包含key-->name值:"+(map.containsKey("name")?"存在":"不存在"));
System.out.println("--------得到全部的key值----------");
Set<String>  test=map.keySet();
Iterator<String> test_Iter=test.iterator();
while(test_Iter.hasNext()){
System.out.println(test_Iter.next());
}

System.out.println("--------得到全部的value值----------");
Collection<String>  test_value=map.values();
Iterator<String> test_I=test_value.iterator();
while(test_I.hasNext()){
System.out.println(test_I.next());
}

System.out.println("--------HashTable的基本操作----------");
Map<String, Integer> map_tabl=new Hashtable<String, Integer>();
map_tabl.put("张三",99);
map_tabl.put("李四",20);
map_tabl.put("王五", 30);
System.out.println(map_tabl.containsKey("王五"));
System.out.println(map_tabl.containsValue(222));
Set<String> last=map_tabl.keySet();
Iterator<String> ss=last.iterator();
while(ss.hasNext()){
System.out.print(ss.next()+"....");
}
Collection<Integer> last1=map_tabl.values();
Iterator<Integer> sss=last1.iterator();
while(sss.hasNext()){
System.out.print(sss.next()+".....");

}

}

}


Map的输出方式如下:



TreeMap是对key进行排序,具体操作如下:
package test;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import  java.util.Iterator;

public class TreeMapDemo {
public static void main(String args[]){
Map<String,String> map=new TreeMap<String, String>();
map.put("C", "www.taobao.com");
map.put("A", "www.baidu.com");
map.put("B", "www.zhong.com");
Set<String> keys=map.keySet();
Iterator<String> iter=keys.iterator();
while(iter.hasNext()){
String str=iter.next();
System.out.println(str+"------>"+map.get(str));
}
//用foreach的形式输出
System.out.println("foreach的形式输出:");
for(Map.Entry<String, String> me:map.entrySet()){      //有点像python字典中的iterms用法
System.out.println(me.getKey()+"------>"+me.getValue());
}
//用Set<Map.Entry<String,String>>进行输出
Set<Map.Entry<String, String>> allSet=map.entrySet();
Iterator<Map.Entry<String, String>> iter1=allSet.iterator();
while(iter1.hasNext()){
Map.Entry<String, String> me1=iter1.next();
System.out.println(me1.getKey()+"--->"+me1.getValue());
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: