java Map集合一
2016-05-10 11:55
591 查看
/* Map集合:该集合存储键值对,一对一对往里面存,而且要保证键的唯一性。 Map比较重要的三个子类: Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的(JDK1.0)元老级的。效率低。 HashMap:底层是哈希表数据结构,允许使用null键null值。该集合是线程不同步的。(JDK1.2)效率高。 TreeMap:底层数据结构是二叉树,线程不同步,可以用于给map集合中的键进行排序。 发现,Map和Set是很相似的。 其实,Set集合底层就是使用了Map集合。 1,添加 put(K key,V value) putAll(Map<? extends k,? extends V>m) 2,删除 clear() remove(Object key) 3,判断 containsValue(Object value) containsKey(Object key) isEmpty() 4,获取 get(Object key) size() values() */ import java.util.*; class MapDemo { public static void main(String[] args) { HashMap<String,String> hm=new HashMap<String,String>(); sop(hm.put("01","zhangsan"));//添加元素 sop(hm.put("01","wangming"));//再次添加相同的键时,后添加的键值会覆盖原有的键值,并返回被覆盖的键值。 hm.put("02","lisi"); hm.put("03","wangwu"); hm.put("04","zhaoliu"); sop(hm); sop(hm.containsValue("zhangsan"));//判断是否包含某一个值,boolean sop(hm.containsKey("02"));//判断是否包含某一个键,boolean sop(hm.remove("03"));//删除某一个键值对,remove的参数是键。 sop(hm); sop(hm.isEmpty());//判断是否为空 sop(hm.get("04"));//根据某个键获取其相应的键值。 sop(hm.size());//返回Hashmap中键值对的个数。 sop(hm.values());//只获取集合中的所有键值,而不获取键。返回类型为collection hm.put("05",null);//添加键值为空的键值对 sop(hm); hm.put("06","madongmei"); sop(hm); sop(hm.get("madongmei")); sop(hm.get("05")); Collection<String> co=hm.values(); //返回类型为collection,所以可以用迭代器来遍历集合中的所有元素。 sop("======================="); Iterator<String> it=co.iterator(); while(it.hasNext()) { sop(it.next()); } } public static void sop(Object obj) { System.out.println(obj); } }
/*
map集合的两种取出方式:
1, keySet:将map中所有的键存入到Set集合中,因为Set具备迭代器。
所以可以以迭代的方式取出所有的键,然后再用get方法获得所有的键值。
返回类型:Set<k>
Map集合的取出原理:将map集合转换成set集合,再通过迭代器取出。
2, Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到了set集合中,而这个关系的数据类型就是:Map.Entry
那么,关系对象Map.Entry获取到后,就可以通过Map.Entry中的getKey和getValue方法来获取Key和Value。
Entry是Map接口的内部接口。内部接口可以被static来修饰。
因为先存在map,然后map中存在映射关系。
*/
import java.util.*;
class MapDemo1
{
public static void main(String[] args)
{
//keySetDemo();//方式一
entrySetDemo();//方式二
}
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void keySetDemo()
{
Map<String,String> map=new HashMap<String,String>();
map.put("03","zhangsan03");
map.put("02","zhangsan02");
map.put("04","zhangsan04");
map.put("01","zhangsan01");
map.put("07","zhangsan07");
map.put("06","zhangsan06");
sop(map);
//使用Map的keySet方法将键取出来并放在Set集合中
Set<String> s=map.keySet();
//使用Set集合的Iterator迭代器遍历每个键
Iterator<String> it=s.iterator();
while(it.hasNext())
{
String key=it.next();
String value=map.get(key);
sop("key:"+key+"..value"+value);
}
}
public static void entrySetDemo()
{
Map<String,String> map=new HashMap<String,String>();
map.put("03","zhangsan03");
map.put("02","zhangsan02");
map.put("04","zhangsan04");
map.put("01","zhangsan01");
map.put("07","zhangsan07");
map.put("06","zhangsan06");
Set<Map.Entry<String,String>> s=map.entrySet();
Iterator<Map.Entry<String,String>> it=s.iterator();
while(it.hasNext())
{
Map.Entry<String,String> me=it.next();
String key=me.getKey();
String value=me.getValue();
sop("key:"+key+"..value:"+value);
}
}
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树