博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java学习——集合框架(泛型,Map)
阅读量:4659 次
发布时间:2019-06-09

本文共 5357 字,大约阅读时间需要 17 分钟。

泛型:

。。。

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
map = new HashMap
(); method(map); } public static void method(Map
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}*/ }}
View Code

 取出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
map = new HashMap
(); method(map); } public static void method(Map
map){
//学号和姓名 map.put(8,"zhaoliu"); map.put(2,"zhaoliu"); map.put(7,"xiaoqiang"); map.put(6,"wangcai"); Set
keySet = map.keySet(); Iterator
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*/ }}
View Code
 

二、通过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
map = new HashMap
(); method(map); } public static void method(Map
map){
//学号和姓名 map.put(8,"zhaoliu"); map.put(2,"zhaoliu"); map.put(7,"xiaoqiang"); map.put(6,"wangcai"); Set
> entrySet = map.entrySet(); Iterator
> it = entrySet.iterator(); while(it.hasNext()){ Map.Entry
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
values = map.values(); Iterator
it2 = values.iterator(); while(it2.hasNext()){ System.out.println(it2.next()); } /*zhaoliu wangcai xiaoqiang zhaoliu*/ }}
View Code

Map常用的子类:

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

 

 HashMap:

public class HashMapDemo {    public static void main(String[] args) {        /*         * 将学生对象和学生的归属地通过键与值存储到map集合中。         */        HashMap
hm = new HashMap
(); 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
keySet = hm.keySet(); // Iterator
it = keySet.iterator(); Iterator
it = hm.keySet().iterator(); while(it.hasNext()){ Student key = it.next(); String value = hm.get(key); System.out.println(key.getName()+":"+key.getAge()+"---"+value); } }}
View Code

TreeMap:

public class TreeMapDemo {    public static void main(String[] args) {        TreeMap
tm = new TreeMap
(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
> it = tm.entrySet().iterator(); while(it.hasNext()){ Map.Entry
me = it.next(); Student key = me.getKey(); String value = me.getValue(); System.out.println(key.getName()+":"+key.getAge()+"---"+value); } }}
View Code

 

 

未完...

转载于:https://www.cnblogs.com/qinwangchen/p/5371109.html

你可能感兴趣的文章
2019 年百度之星·程序设计大赛 - 复赛
查看>>
添加其它邮箱
查看>>
Fiji-imageJ 无法打开
查看>>
excel acm 高校排名(hdoj)
查看>>
给从论文复制的文本设置正确的格式(可设置快捷键)
查看>>
堆排序和优先队列
查看>>
非比较排序
查看>>
归并排序
查看>>
scrapy
查看>>
初学java 之 类型转化 笔记
查看>>
冒泡排序
查看>>
git使用系列 4.1 git 实践(一) pull的使用
查看>>
git 问题记录
查看>>
网站收集整理
查看>>
git使用系列 4.1 git 实践(二) push的使用
查看>>
CPU 上下文切换及案例分析
查看>>
Python 解析式、生成器
查看>>
js面向对象加构造函数模式表单验证
查看>>
获取时间和获取父节点子节点属性
查看>>
BZOJ 1001: [BeiJing2006]狼抓兔子
查看>>