博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day18 Java学习(Map集合)
阅读量:4454 次
发布时间:2019-06-07

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

集合框架(Map集合)

    Map接口概述:

         * 将键映射到值的对象

         * 一个映射不能包含重复的键

         * 每个键最多只能映射到一个值

     Map接口和Collection接口的不同:

         * Map是双列的,Collection是单列的。

         * Map的键唯一,Collection的子体系Set是唯一的。

         * Map集合的数据结构值针对键有效跟值无关;Collection集合的数据结构是针对元素有效。       

 

  集合框架(Map集合的功能概述)

         添加功能:

                        * put (K key ,Vvalue) :添加元素 

                            * 如果键是第一次存储,就直接存储元素,返回null

                            * 如果键不是第一次,就用值把以前的值替换掉,返回以前的值。

          删除功能:

                        * void  clear( ) :移除所有的键值对元素。

                        * remove( ) :根据键删除键值对元素,并把值返回。

           判断功能:

                         * Boolean containsKey(Object key) :判断集合是否包含传入的键

                         * Boolean containsValue(Object key) :判断集合是否包含传入的值

                         * Boolean  isEmpty( ):判断集合是否为空。

           获取功能:

                         * Set< Map.Entry<K , V> > entrySet( ): 键值对对象集合

                         * get (Object key) : 根据键获取值

                         * Set <K> keySet( ):获取集合中所有值的集合

                         *  Collection<v> values():获取集合中所有值的集合。

            长度功能:

                         * int size( ):返货集合中键值对的个数

 

   

public static void main(String[] args) {                Map
map = new HashMap<>(); Integer l1 = map.put("张三", 14); Integer l2 = map.put("李四", 15); Integer l3 = map.put("王五", 16); Collection
c=map.values(); //values():获取集合中所有值的集合。 // Integer l4 = map.put("张三", 18); //put()方法: 相同的键不存储,值覆盖,把覆盖的值返回 // Integer l5=map.remove("张三"); //remove()方法: 根据键删除元素 ,返回键对应的值 System.out.println(map.containsKey("张三")); //类.containsKey():判断集合是否包含传入的键 System.out.println(map.containsValue(16)); //类.containsValue():判断集合是否包含传入的值 System.out.println(c.size()); //size():返回集合中键值对的个数。 System.out.println(c); }
实例

 

  集合框架(Map集合的遍历)

第一种遍历(keySet()):          public static void main(String[] args) {                  Map
map=new HashMap<>(); map.put("张三", 14); map.put("李四", 15); map.put("王五", 16); // Integer i=map.get("张三"); //根据键获取值 //获取所有的键 for (String string : map.keySet()) { //keySet():获取集合中所有值的集合 System.out.println(string+"...."+map.get(string));}}第二种遍历(entrySet()): public static void main(String[] args) { Map
map=new HashMap<>(); map.put("张三", 14); map.put("李四", 15); map.put("王五", 16); // Map.Entry说明Entry是Map的内部接口,将键和值封装成Entryd对象,并存储在Set集合中。 for (Map.Entry
en : map.entrySet() ) { //en是键值对对象 System.out.println(en.getKey()+"..."+en.getValue() ); //通过键值对对象拿到键和值 }}
实例

 

 

public static void main(String[] args) {        // TODO 自动生成的方法存根        HashMap
hm= new HashMap<>(); hm.put(new Student("张三", 18),"北京"); hm.put(new Student("李四", 20),"上海"); hm.put(new Student("王五", 22),"广州"); for (Student string : hm.keySet()) { System.out.println("姓名:"+string.getName() +" "+"年龄:"+string.getAge()+" "+"地址:"+hm.get(string)); } System.out.println(hm); }
HashMap集合键是Student值是String

 

 

public static void main(String[] args) {        TreeMap
tree = new TreeMap<>(); tree.put(new Student("张三", 18), "北京"); tree.put(new Student("李四", 20), "上海"); tree.put(new Student("王五", 2), "广州"); for (Student string : tree.keySet()) { System.out.println( "姓名:" + string.getName() + " " + "年龄:" + string.getAge() + " " + "地址:" + tree.get(string)); } System.out.println(tree); }
TreeMap集合

 

public static void main(String[] args) {        //统计字符串中每个字符出现次数        String s = "aaaacccvvvvv";        char[] arr = s.toCharArray();        HashMap
hs = new HashMap<>(); //遍历字符数组,将字符添加到双列集合中 for (char c : arr) { //如果不包含这个键 hs.put(c, !hs.containsKey(c) ? 1 : hs.get(c) + 1); } for (Character key :hs.keySet()) { System.out.println(key+"="+hs.get(key)); } }
统计字符串中每个字符出现次数

 

                           

 

转载于:https://www.cnblogs.com/feng0001/p/10941563.html

你可能感兴趣的文章
Android APP开发入门教程-Button 分类: JAVA ...
查看>>
WustOJ 1575 Gingers and Mints(快速幂 + dfs )
查看>>
js中,for循环里面放ajax,ajax访问不到变量以及每次循环获取不到数据问题总结...
查看>>
算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
查看>>
CSU 1160 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示
查看>>
LintCode 58: Compare Strings
查看>>
[Unity插件]Lua行为树(五):装饰节点Repeater
查看>>
顺序表、链表、栈和队列
查看>>
Linux第二天(Linux常用命令2)
查看>>
MySql知识体系
查看>>
JIRA中的标记语言的语法参考
查看>>
hdu 6318 Swaps and Inversions(归并排序)
查看>>
用css在IE7、8上实现圆角
查看>>
三维绿幕标定与跟踪
查看>>
android ProgressBar自定义半圆形进度条
查看>>
Django
查看>>
hdu.5212.Code(莫比乌斯反演 && 埃氏筛)
查看>>
python学习记录一
查看>>
使用LINQ的Skip和Take函数分批获取数据
查看>>
IP通信基础 4月1日
查看>>