泛型:

。。。

Map:一次添加一对元素。Collection 一次添加一个元素。
Map也称为双列集合,Collection集合称为单列集合。
其实map集合中存储的就是键值对。
map集合中必须保证键的唯一性

常用方法:
1,添加。
value put(key,value):返回前一个和key关联的值,如果没有返回null.

2,删除。
void clear():清空map集合。
value remove(key):根据指定的key翻出这个键值对。

3,判断。
boolean containsKey(key):
boolean containsValue(value):
boolean isEmpty();

4,获取。
value get(key):通过键获取值,如果没有该键返回null。
        当然可以通过返回null,来判断是否包含指定键。
int size(): 获取键值对的个数。

public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
public static void method(Map<Integer,String> map){//学号和姓名
// 添加元素。
System.out.println(map.put(8, "wangcai"));//null
System.out.println(map.put(8, "xiaoqiang"));//wangcai 存相同键,值会覆盖。
map.put(2,"zhangsan");
map.put(7,"zhaoliu");
//删除。
System.out.println("remove:"+map.remove(2));
//判断。
System.out.println("containskey:"+map.containsKey(7));
//获取。
System.out.println("get:"+map.get(6));
System.out.println(map);
/*控制台打印如下
null
wangcai
remove:zhangsan
containskey:true
get:null
{7=zhaoliu, 8=xiaoqiang}*/
}
}

取出map中所有元素:

一、通过keySet方法获取map中所有的键所在的Set集合,在通过Set的迭代器获取到每一个键,

  在对每一个键通过map集合的get方法获取其对应的值即可。

Set<K> keySet() 返回此映射中包含的键的 Set 视图。

public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
public static void method(Map<Integer,String> map){//学号和姓名
map.put(8,"zhaoliu");
map.put(2,"zhaoliu");
map.put(7,"xiaoqiang");
map.put(6,"wangcai"); Set<Integer> keySet = map.keySet();
Iterator<Integer> it = keySet.iterator(); while(it.hasNext()){
Integer key = it.next();
String value = map.get(key);
System.out.println(key+":"+value);
}
/*控制台结果显示:
2:zhaoliu
6:wangcai
7:xiaoqiang
8:zhaoliu*/
}
}

二、通过Map转成set就可以迭代。找到了另一个方法,entrySet。

  该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系的类型就是Map.Entry类型(结婚证)

  Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。

   Collection<V> values() 返回此映射中包含的值的 Collection 视图。

public class demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<Integer,String> map = new HashMap<Integer,String>();
method(map);
}
public static void method(Map<Integer,String> map){//学号和姓名
map.put(8,"zhaoliu");
map.put(2,"zhaoliu");
map.put(7,"xiaoqiang");
map.put(6,"wangcai"); Set<Map.Entry<Integer, String>> entrySet = map.entrySet();
Iterator<Map.Entry<Integer, String>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<Integer, String> me = it.next();
Integer key = me.getKey();
String value = me.getValue();
System.out.println(key+"::::"+value);
}
/*2::::zhaoliu
6::::wangcai
7::::xiaoqiang
8::::zhaoliu*/
//取出所有value值
Collection<String> values = map.values();
Iterator<String> it2 = values.iterator();
while(it2.hasNext()){
System.out.println(it2.next());
}
/*zhaoliu
wangcai
xiaoqiang
zhaoliu*/
}
}

Map常用的子类:
|--Hashtable :内部结构是哈希表,是同步的。不允许null作为键,null作为值。
  |--Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合。
|--HashMap : 内部结构是哈希表,不是同步的。允许null作为键,null作为值。
|--TreeMap : 内部结构是二叉树,不是同步的。可以对Map集合中的键进行排序。

HashMap:

public class HashMapDemo {
public static void main(String[] args) {
/*
* 将学生对象和学生的归属地通过键与值存储到map集合中。
*/
HashMap<Student,String> hm = new HashMap<Student,String>(); hm.put(new Student("lisi",38),"北京");
hm.put(new Student("zhaoliu",24),"上海");
hm.put(new Student("xiaoqiang",31),"沈阳");
hm.put(new Student("wangcai",28),"大连");
hm.put(new Student("zhaoliu",24),"铁岭"); // Set<Student> keySet = hm.keySet();
// Iterator<Student> it = keySet.iterator(); Iterator<Student> it = hm.keySet().iterator(); while(it.hasNext()){
Student key = it.next();
String value = hm.get(key);
System.out.println(key.getName()+":"+key.getAge()+"---"+value);
}
}
}

TreeMap:

public class TreeMapDemo {
public static void main(String[] args) { TreeMap<Student,String> tm = new TreeMap<Student,String>(new ComparatorByName()); tm.put(new Student("lisi",38),"北京");
tm.put(new Student("zhaoliu",24),"上海");
tm.put(new Student("xiaoqiang",31),"沈阳");
tm.put(new Student("wangcai",28),"大连");
tm.put(new Student("zhaoliu",24),"铁岭"); Iterator<Map.Entry<Student, String>> it = tm.entrySet().iterator(); while(it.hasNext()){
Map.Entry<Student,String> me = it.next();
Student key = me.getKey();
String value = me.getValue(); System.out.println(key.getName()+":"+key.getAge()+"---"+value);
}
}
}

未完...

最新文章

  1. Ant介绍
  2. 国外社交网站获取分享数量APIs
  3. 从github下载某个git库的4种方法
  4. jQuery基础修炼圣典—DOM篇(一)
  5. eclipse bookmark的使用
  6. yum安装gcc
  7. sublime text3输入中文的问题.
  8. 一个简单的GI--Reflective Shadow Maps
  9. 机器学习理论与实战(十)K均值聚类和二分K均值聚类
  10. 2048 Puzzle游戏攻略
  11. Loadrunner中参数和变量的使用
  12. JOptionPane的使用
  13. PRINCE2学习
  14. Elasticsearch 全教程--入门
  15. 深入Node之初识
  16. [Swift]LeetCode752. 打开转盘锁 | Open the Lock
  17. 开启bin-log日志mysql报错:This function has none of DETERMINISTIC, NO SQL解决办法
  18. codeblocks1712设置中文
  19. el和jstl标签库讲解视频
  20. Centos使用LVS+keepalive 搭建集群原理详解

热门文章

  1. War3Tool dota改键v3.3版
  2. Unity NGUI中Anchor的用法
  3. splay模板
  4. HDU 1151 Air Raid(最小路径覆盖)
  5. PowerDesigner自定义Word导出格式
  6. shell 二元操作符 =~
  7. logback logback.xml 常用配置详解
  8. Java NIO框架Netty demo
  9. 点击Enter键,文本框焦点改变 分类: WinForm 2014-04-15 10:30 223人阅读 评论(0) 收藏
  10. Qt知识点、疑难杂症的治疗