常用的Map集合

您所在的位置:网站首页 map获取key的方法 常用的Map集合

常用的Map集合

2023-03-03 06:03| 来源: 网络整理| 查看: 265

常用的Map集合_常用集合的表示方法 思创斯忠实用户-ss • 2023年2月28日 11:00 • 未分类

常用的Map集合_常用集合的表示方法Map集合Map集合常用方法增加删除判断获取Map集合中TreeSet的应用Map集合中HashSet的应用Map集合常用方法Map集合和Collection集合的区别Map集合是有Key和Value的,Collection集合是只有Value。Collection集合底层也是有Key和Value,只是隐藏起来。1.增加put(Kkey,Vvalue)2.删除…

大家好,我是你的好朋友思创斯。今天说一说常用的Map集合_常用集合的表示方法,希望您对编程的造诣更进一步.

Map集合 Map集合常用方法 增加 删除 判断 获取 Map集合中TreeSet的应用 Map集合中HashSet的应用 Map集合常用方法

Map集合和Collection集合的区别

Map集合是有Key和Value的,Collection集合是只有Value。

Collection集合底层也是有Key和Value,只是隐藏起来。

1.增加 put (K key, V value) 2.删除 clear() 删除这个集合的所有值 remove(Object key) 根据键删除这一类 3.判断 containsKey(Object key) containsValue(Object value) isEmpty() 4.获取 get(Object key) size() values() entrySet() keySet()

增加

Map的put方法

1.添加集合元素的同时,它可以编辑原有的元素 如果说集合中没有key对应的value,那么就往集合中添加元素 如果说集合对应的key有value值,则代表替换原有的值 2.返回替换前key对应的value值 在这里插入图片描述 删除

clear() 删除这个集合的所有值

在这里插入图片描述 remove(Object key) 根据键删除这一类

在这里插入图片描述

判断

containsKey(Object key) 这里就举这一个例子 在这里插入图片描述

获取

KeySet(): 将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key

entrySet():

Set entrySet() //返回此映射中包含的映射关系的 Set 视图。 Map.Entry表示映射关系。entrySet():迭代后可以e.getKey(),e.getValue()取key和value。返回的是Entry接口 。

在这里插入图片描述

Map集合中TreeSet的应用

底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序

package com.zking.Map; import java.util.Comparator; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; /** * 1、将学生作为键,地址作为值进行存储,名字年龄相同则被认定为一个人,最后输出 * A.建立一个student类,实例化作为key添加到map集合中 * B.对学生进行判重 * 2、最后按年龄进行排序 * 3、需求改变、按姓名进行排序 * @author huguiyun * */ public class TreeMapDemo { public static void main(String[] args) { // Map map = new HashMap();//判重 // Map map = new TreeMap();//判重需要实现Comparable方法,排序 Map map = new TreeMap(new StuComp());//比较器排序 map.put(new Student("liuting", 18), "beijing"); map.put(new Student("wangwang", 43), "xingjiang"); map.put(new Student("goudan", 28), "dongjing"); map.put(new Student("xuyangyang", 38), "hulunbeier"); map.put(new Student("liuting", 18), "beijing"); map.put(new Student("liutingting", 18), "beijing"); System.out.println(map.size()); Set entryset = map.entrySet(); for(Entry entry:entryset) { System.out.println(entry.getKey()+" === "+entry.getValue()); } } } class Student implements Comparable{ //让它具有比较性 private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } public Student(String name, int age) { super(); this.name = name; this.age = age; } public Student() { super(); } //乘以39是为了增大他们的哈希,防止他们的哈希值相等 @Override public int hashCode() { return this.getName().hashCode()+this.getAge()*39; } @Override public boolean equals(Object obj) { Student stu = (Student)obj; return this.getAge() ==stu.getAge()&&this.getName().equals(stu.getName()) ; } @Override public int compareTo(Student o) { //一定要判断主要条件和次要条件 int num = this.getAge() - o.getAge(); if(num==0) { this.getName().compareTo(o.getName()); } return num; } } class StuComp implements Comparator{ //比较器排序 @Override public int compare(Student o1, Student o2) { int num = o1.getName().compareTo(o2.getName()); if(num==0) { return o1.getAge() - o2.getAge(); } return num; } } Map集合中HashSet的应用

统计字符串中字符出现次数

package com.zking.Map; import java.util.HashMap; import java.util.Map; import java.util.TreeMap; /** * * map集合中的泛型要使用包装类,或者是引用数据类型 * * 统计字符串中出现的次数 * sdkfgkdfadasdfasd * a(2)c(5) * * 思考 * 统计,排序 * * 统计功能 * 1.将字符串转为字符数组,将这个字符串中的字符当作map集合中的key, * 将出现的次数作为value值 * * 2.当字符第一次出现的时候,那么用它在集合中进行寻找,返回值必然是null, * 之后将该字符对应的值改为1 * * 3.如果说该字符不是第一次出现,该字符对应的值不为null,然后应该+1 * * @author huguiyun * */ public class HashMapDemo { public static void main(String[] args) { String str = "ksdflaksdfasdrtwrtwerxvsdfghflaihijfaidfai"; str = cishu(str); System.out.println(str); } public static String cishu(String str) { char[] chararray = str.toCharArray(); Map map = new TreeMap(); for(char c : chararray) { Integer value = map.get(c); if(value==null) { map.put(c, 1); } else { map.put(c, ++value); } } // StringBuffer跟string string 会创建新的空间 StringBuffer sb = new StringBuffer(); for(Map.Entry entry:map.entrySet()) { sb.append(entry.getKey()+"("+entry.getValue()+")"); } return sb.toString(); } } 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/98640.html

赞 (0) 思创斯忠实用户-ss思创斯忠实用户-ss 0 0 生成海报


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3