package map.demo;import java.util.*;/*** @author Alina* @date 2021年09月25日 11:20 下午* 底层原理是哈希表,保证唯一性* 允许存储null键,null值* 线程不安全,运行速度快* keyset()可以获取到键* Collections 类的方法reverseOrder :调用空参数,返回比较器,逆转对象的自有顺序**/
public class HashMapDemo {public static void main(String[] args) {Scanner sc = new Scanner(System.in);HashMap<Student,String> ha = new HashMap<>();System.out.println("请输入学生的姓名,年龄,籍贯!");System.out.println("例如:'张三 37  黑龙江' ,以空格作为分隔符,以over结束");while (true){String student = sc.nextLine();String []  studentInfo = student.split(" +");if (student.equalsIgnoreCase("over")){keySet(ha);break;}else{ha.put(new Student(studentInfo[0],Integer.parseInt(studentInfo[1])),studentInfo[2]);}}}public static void keySet(HashMap<Student,String> mp){Set<Student> s = mp.keySet();Iterator<Student> it = s.iterator();while (it.hasNext()){Student key = it.next();String value = mp.get(key);System.out.println(key+ "  "+ value);}}
}package map.demo;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;/*** @author Alina* @date 2021年09月23日 9:03 下午* Map集合,可以存储两个集合,一个键值对* 1.不继承Collection* 2.键保持唯一性,值可以重复* 3.Map接口中的方法* 4.引用类型获取不到值,返回NILL,基本类型,获取不到值返回负数* 5.map集合的获取第一种:Map集合依赖于Set集合,可以使用Map集合的Set方法,并迭代****/
public class Mapdemo {public static void main(String[] args) {method_4();}/***** @author Alina* @date 2021/9/25 10:07 下午* Map集合中,有一个类描述映射关系* 键值对关系对象的描述接口,是Map接口的内部接口* interface Map{*     interface Entry{*     K getKey();*     V getValue();*     }* }* 案例使用的是HashMap实现* class HashMap implements Map{*     class Entry implements Map.Entry{*         public k getKey();*         public V getValue();*     }* }* 实现步骤:* 1.Map集合的方法entrySet()方法获取键值对关系对象-->Map.Entry接口的实现类*   将Map.Entry接口实现类对象,存储到Set集合*  2.迭代Set集合*  3.获取Set结合,存储的是Map.Entry对象  -->Map集合中的键值对的映射关系*  4.使用返回的ap.Entry对象getKey getValue 获取键值对*/public static void method_4(){Map<String,Integer> m = new HashMap<>();m.put("a",21);m.put("b",43);m.put("c",90);Set<Map.Entry<String,Integer>> st = m.entrySet();Iterator <Map.Entry<String,Integer>> it = st.iterator();while (it.hasNext()){Map.Entry<String,Integer>  mp = it.next();String key = mp.getKey();Integer value = mp.getValue();System.out.println("key:"+key+"  "+"value:"+value);}}/*** * @author Alina* @date 2021/9/25 10:00 下午* 迭代Map集合,Map集合依赖于Set集合,可以使用迭代器* keySet()方法可以获取键*/public static void method_3(){Map<String,Integer> m = new HashMap<>();m.put("a",21);m.put("b",43);m.put("c",90);Set<String> s = m.keySet();Iterator <String> it = s.iterator();while (it.hasNext()){String key = it.next();Integer value = m.get(key);System.out.println("key:"+key+"  "+"value:"+value);}}/*** * @author Alina* @date 2021/9/25 9:23 下午* 判断集合中是否含有某元素*/public static void method_2(){Map<String,Integer> ht = new HashMap<>();Integer a = ht.put("a",1);Integer b = ht.put("b",2);Integer c = ht.put("c",3);Integer d = ht.put("d",4);Integer i = ht.get("c");//判断当前键中是否有某键boolean a1 = ht.containsKey("a");//判断值中是否包含某值boolean b1 = ht.containsValue(3);System.out.println(a1+" "+b1);}/**** @author Alina* @date 2021/9/25 9:24 下午* 使用Map集合依赖于实现类HashMap实现类*/public static void method(){//Map接口对实现类HashMapMap<String,Integer> h = new HashMap<>();//键值对存储到集合的方法,-->putInteger a =  h.put("a",1);System.out.println(a);System.out.println(h);//获取键对应的值}/**** @author Alina* @date 2021/9/25 9:26 下午* 往Map类存储*/public static void method_1(){Map<String,Integer> ht = new HashMap<>();Integer a = ht.put("a",1);Integer b = ht.put("b",2);Integer c = ht.put("c",3);Integer d = ht.put("d",4);Integer i = ht.get("c");System.out.println("ht:"+ht);System.out.println(i);}
}
package map.demo;import java.util.TreeMap;/*** @author Alina* @date 2021年10月02日 4:27 下午* 获取一个字符串中某个字母出现的次数*/
public class Maptest {public static void main(String[] args) {String str = "aababcadasda";method_1(str);}public static void method_1(String str){char[] strArr =  str.toCharArray();TreeMap<Character,Integer> strArr_treeMap = new TreeMap<>();for(char c : strArr){Integer i = strArr_treeMap.get(c);if (i==null){strArr_treeMap.put(c,1);}else{strArr_treeMap.put(c,i+1);}}System.out.println(strArr_treeMap);}}
package map.demo;import javafx.beans.binding.MapExpression;import java.util.*;/*** @author Alina* @date 2021年09月27日 10:48 下午* Map嵌套* 数据形式*      川石*          功能测试班*              学号:001  姓名:张三*              学号:002  姓名:李四*          性能测试班*              学号:003  姓名:王二*              学号:004  姓名:麻子*/
public class MapTest2 {public static void main(String[] args) {HashMap<String,HashMap<String,String>> chuanshi = new HashMap<>();HashMap<String,String> classOne = new HashMap<>();HashMap<String,String> classTwo = new HashMap<>();chuanshi.put("功能测试班",classOne);chuanshi.put("性能测试班",classTwo);classOne.put("001","张三");classOne.put("002","李四");classTwo.put("003","王二");classTwo.put("004","麻子");Map_Entry(chuanshi);}public static void keySet(HashMap<String,HashMap<String,String>> className){Set<String> classname = className.keySet();Iterator< String> it = classname.iterator();while (it.hasNext()){String class_id = it.next();HashMap<String,String> class_student_number = className.get(class_id);Set<String> class_number = class_student_number.keySet();Iterator<String> it_1 = class_number.iterator();while (it_1.hasNext()){String student_id = it_1.next();String student_name = class_student_number.get(student_id);System.out.println("Class:"+class_id+"  "+"id:"+ student_id+"  "+"name:"+student_name);}}}public static void Map_Entry(HashMap<String,HashMap<String,String>> className){//使用具和方法,将键值对关系存储到Set集合Set<Map.Entry<String,HashMap<String,String>>> mp1 = className.entrySet();Iterator<Map.Entry<String,HashMap<String,String>>> it = mp1.iterator();while(it.hasNext()){Map.Entry<String,HashMap<String,String>> mp2 = it.next();//获取班级对象HashMap<String,String> mp_class_name = mp2.getValue();//获取班级idString mp_class_id   = mp2.getKey();Set<Map.Entry<String,String>> student_number = mp_class_name.entrySet();Iterator<Map.Entry<String,String>> it2 = student_number.iterator();while (it2.hasNext()){Map.Entry<String,String>mp3 = it2.next();//获取学生姓名String mp_student_name = mp3.getValue();//获取学生idString mp_student_id = mp3.getKey();System.out.println("class name:"+ mp_class_id+"  student id:"+mp_student_id+"  student name:"+mp_student_name);}}}
}
package map.demo;import java.util.*;/*** @author Alina* @date 2021年09月26日 10:54 下午*存入Student类对象和地址,1.实现名字的自然顺序排序* 2.实现按年龄的从小到大排序*/
class MyComparator implements Comparator<Student> {public int compare(Student s1,Student s2){int age = s1.getAge()- s2.getAge();return age==0?s1.getName().compareTo(s2.getName()):age;}
}
public class treeMapDemo {public static void main(String[] args) {method_1();}public static void method_1() {TreeMap<Student, String> treemap = new TreeMap<>(new MyComparator());treemap.put(new Student("zhangsag", 23), "深圳");treemap.put(new Student("lisi", 26), "北京");treemap.put(new Student("wanger", 50), "广州");treemap.put(new Student("mazi", 100), "上海");Set<Map.Entry<Student, String>> s = treemap.entrySet();Iterator<Map.Entry<Student, String>> it = s.iterator();while (it.hasNext()) {Map.Entry<Student, String> mp = it.next();Student key = mp.getKey();String value = mp.getValue();System.out.println(key + "  " + value);}}
}

(JAVA)Map集合相关推荐

  1. Java Map集合面试题汇总

    转载自 Java Map集合面试题汇总 1. 你都知道哪些常用的Map集合? 2.Collection集合接口和Map接口有什么关系? 3.HashMap是线程安全的吗?线程安全的Map都有哪些?性能 ...

  2. Java Map集合的详解

    参考自:Java Map集合的详解 (略有修改) 一,Map 如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map. Map是一种依照键(key)存储 ...

  3. java map集合排序的_Java对Map集合进行排序

    Java对Map集合进行排序 实现 Comparator 接口,重写compare方法,完成自定义排序 int compare(Object o1, Object o2) 返回一个基本类型的整型 如果 ...

  4. Java—Map集合详解(HashMap/Hashtable/LinkedHashMap/Properties/TreeMap/WeakHashMap/IdentityHashMap/EnumMap)

    关注微信公众号:CodingTechWork,一起学习进步. Map Map集合介绍   Map(也称为字典.关联数组)是用于保存具有映射关系的数据,保存两组值,key和value,这两组值可以是任何 ...

  5. java map 集合实例_Java之集合类【HashMap】【入门版,实例解析】

    例子一: import java.util.Map; import java.util.Set; import java.util.HashMap; public class HashMapDemo1 ...

  6. java map集合使用_JAVA中Map集合的使用举例

    首先创建一个Emp类,再将几个Emp对象添加到Map集合中. Emp的id作为Map的键,并将id为"005"的对象从集合中删除. package com.han; import ...

  7. java map集合的等号改为逗号_老司机用一篇博客带你快速熟悉Dart语法

    [前言]Dart语言是使用flutter框架开发时候必备的语言,flutter是一个跨平台的框架,一套代码就可以完美实现安卓和ios两个平台,适配也很不错,Dart语言很友好,和java很类似,学习成 ...

  8. java map集合详解_JAVA干货:Map 集合详解

    java.util.Map集合 Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以 ...

  9. Java——Map集合

    一.Map集合 1.概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种 ...

最新文章

  1. 如何突破DNS报文的512字节限制
  2. 解决 python pip install安装速度慢| 版本低|跨过个别错误包
  3. Python核心模块——urllib模块
  4. HTML中三维特性,前端进阶系列(三):HTML5新特性
  5. 刚开始走向工作岗位初遇到的一些问题
  6. Sybase数据库中找回丢失的sa密码
  7. Eclipse 配置SSH 详解
  8. 百度云域名解析如何添加? - [未完待续]
  9. svg标签的CSS3动画特效 - 经典特效
  10. java程序内存泄漏场景及预防
  11. 计算机835真题,《计算机水平考试》复习题835题(含答案)
  12. mysql批量修改http为https,搜索和将数据库中的“ http”替换为“ https”
  13. JSON - Qt 对 JSON的处理
  14. CentOS虚拟机挂载U盘
  15. JSON字符串,JSON对象,JSON数组,实体类转换
  16. Gauss-Newton法matlab求解
  17. sublime指定python版本
  18. Unity3D 模型描边插件Outline Effect详细使用说明、C#功能扩展
  19. 高兴,今天总算鸟枪换炮了~
  20. 旧手机先别扔,余承东:留着升级一下鸿蒙

热门文章

  1. 第一百一十期:详解SpringBoot应用跨域访问解决方案
  2. esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制
  3. web app小程序各种客服窗口插件
  4. Android Studio 安装配置问题总结
  5. Thinkpad Access Connections实现快速的在各种网络间进行切换
  6. testNG入门详解
  7. 转: Jenkins+Gradle实现android开发持续集成、打包
  8. firefox addons
  9. 无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法...
  10. BeanUtil使用例子:解析并转化HttpServletRequest到Bean的全面测试