常用的Map集合 |
您所在的位置:网站首页 › map获取key的方法 › 常用的Map集合 |
常用的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() 删除这个集合的所有值
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集合中的键进行排序 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)![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |