java的Set接口

文章目录

  • java的Map接口
    • Map的创建
    • Map的常用方法
    • Map的遍历
    • Map的练习

java的Map接口

Map接口存储的是一组键值对象,提供的是key到value的映射,这个key是不可以重复的,但是value可以有多个相同的值和key组成唯一的键值对

本文以HashMap为例,列举Map的创建和常用方法等等。

Map的创建

package cn.zhz.Test;import java.util.HashMap;
import java.util.Map;public class CountriesInfo {public static void main(String[] args) {//创建集合对象,将国家的信息键值对放置到集合中Map countries = new HashMap();countries.put("China", "中国");countries.put("USA", "美国");countries.put("Japan", "日本");countries.put("France", "法国");//获取集合中存储元素的个数(返回的是键值对的个数)System.out.println(countries.size());//获取集合中特定的key对应的value--Object返回值类型,需要进行强制类型转换String country = (String) countries.get("China");System.out.println(country);}
}

Map的常用方法

package cn.zhz.Test;import java.util.HashMap;
import java.util.Map;public class CountriesInfo {public static void main(String[] args) {//创建集合对象,将国家的信息键值对放置到集合中Map countries = new HashMap();countries.put("China", "中国");countries.put("USA", "美国");countries.put("Japan", "日本");countries.put("France", "法国");//获取集合中存储元素的个数(返回的是键值对的个数)System.out.println(countries.size());//获取集合中特定的key对应的value--Object返回值类型,需要进行强制类型转换String country = (String) countries.get("China");System.out.println(country);//获取集合中特定的key对应的value,如果找不到,则返回nullString country2 = (String) countries.get("Australia");System.out.println(country2);//判断集合中是否存在某一个国家System.out.println("国家列表中是否存在China\t" + countries.containsKey("China"));System.out.println("国家列表中是否存在Australia\t" + countries.containsKey("Australia"));//删除某个特定的key对应的键值对System.out.println("国家列表中是否存在USA\t" + countries.containsKey("USA"));countries.remove("USA");System.out.println("国家列表中是否存在USA\t" + countries.containsKey("USA"));System.out.println(countries.size());//获取键的集合System.out.println(countries.keySet());//获取值的集合System.out.println(countries.values());//获取键值对的集合System.out.println(countries);}
}

Map的遍历

Map的遍历由两种方式:

  • 第一种方式:

    通过遍历key,通过key来获取value

在第一种方式中又可以有两种方法:

方法一:通过增强型的for循环来进行遍历

方法二:通过迭代器Iterator来实现遍历

  • 第二种方式:

遍历key-value对

package cn.zhz.Test;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;public class CountriesInfo {public static void main(String[] args) {//创建集合对象,将国家的信息键值对放置到集合中Map countries = new HashMap();countries.put("China", "中国");countries.put("USA", "美国");countries.put("Japan", "日本");countries.put("France", "法国");//获取集合中存储元素的个数(返回的是键值对的个数)System.out.println(countries.size());//获取集合中特定的key对应的value--Object返回值类型,需要进行强制类型转换String country = (String) countries.get("China");System.out.println(country);//获取集合中特定的key对应的value,如果找不到,则返回nullString country2 = (String) countries.get("Australia");System.out.println(country2);//判断集合中是否存在某一个国家System.out.println("国家列表中是否存在China\t" + countries.containsKey("China"));System.out.println("国家列表中是否存在Australia\t" + countries.containsKey("Australia"));//删除某个特定的key对应的键值对System.out.println("国家列表中是否存在USA\t" + countries.containsKey("USA"));countries.remove("USA");System.out.println("国家列表中是否存在USA\t" + countries.containsKey("USA"));System.out.println(countries.size());//获取键的集合System.out.println(countries.keySet());//获取值的集合System.out.println(countries.values());//获取键值对的集合System.out.println(countries);//遍历Map-->思路一:遍历key(Set),通过key找到valueSet keys = countries.keySet();//获取到Map中的所有的key//方法一:增强型for遍历key的集合(Set)for (Object obj : keys) {String key = (String) obj;//获取到Map中的每一个keyString value = (String) countries.get(key);//根据Map中的每一个key获取对应的valueSystem.out.println(key + "--" + value);}//方法二:迭代器Iterator遍历key的集合(Set)Iterator itor = keys.iterator();while (itor.hasNext()) {String key = (String) itor.next();//获取到Map中的每一个keyString value = (String) countries.get(key);//根据Map中的每一个key去获取对应的valueSystem.out.println(key + "--" + value);}//遍历Map 思路二:获取Map中的所有的键值对,然后在键值对中分别获取key和valueSet set = countries.entrySet();//获取Map中的键值对//遍历键值对的集合,把每一个键值对(obj)--Map.Entry(键值对的类型)拿出来for(Object obj:set){Map.Entry me = (Map.Entry) obj;String key = (String)me.getKey();//获取键值对中的键String value = (String)me.getValue();//获取兼职对中的值System.out.println(key+"--"+ value);}}
}

Map的练习

如果要求每个人起一个英文名称相对应,应该如何实现存储和一系列操作呢?

声明一个学生类,包含姓名和性别属性

package cn.zhz.Kind;
//声明一个学生类:包含姓名和性别
public class Student {private String name;private String sex;@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", sex='" + sex + '\'' +'}';}public Student(String name, String sex) {this.name = name;this.sex = sex;}public Student() {}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}

编写一个测试类

package cn.zhz.Test;import cn.zhz.Kind.Student;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;public class StudentInfoMgr {public static void main(String[] args) {Student stu1 = new Student("张三", "男");Student stu2 = new Student("李明", "男");Student stu3 = new Student("王华", "女");Map stuMap = new HashMap();stuMap.put("Buck", stu1);stuMap.put("Jack", stu2);stuMap.put("Jession", stu3);//输出共几名学生进入外企System.out.println("一共有" + stuMap.size() + "名学生");//输出分别是谁Set set = stuMap.entrySet();for (Object obj : set) {Map.Entry me = (Map.Entry) obj;String key = (String) me.getKey();Student student = (Student) me.getValue();System.out.println(key + "-" + student.getName() + "-" + student.getSex());}//实现获取特定的英文名称对应的学生信息Scanner input = new Scanner(System.in);System.out.println("请输入您要查找的学生的英文名称:");String name = input.next();if(stuMap.containsKey(name)){//在Map中找到了相应的key,根据key去获取相应的value(学生对象)Student student= (Student) stuMap.get(name);System.out.println("该学生的全部信息如下:");System.out.println(name+"-"+student.getName()+"-"+student.getSex());}else{System.out.println("对不起,没有改名学生");}}
}

Collections类

java的Map接口相关推荐

  1. Java的Map接口,以及Collection和Collections的区别

    一.JAVA集合类(Collection接口.Map接口) java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java ...

  2. Java API —— Map接口

    1.Map接口概述 · 将键映射到值的对象 · 一个映射不能包含重复的键 · 每个键最多只能映射到一个值 2.Map接口和Collection接口的不同 ·  Map是双列的:Collection是单 ...

  3. Java中Map接口及实现

    Map接口及实现:   1. Map接口   Map是从键到值的映射,键不允许重复,每个键最多能映射一个值. public interface Map<K,V> {     // Quer ...

  4. Java集合——Map接口学习总结

    一.HashMap实现类 1.常用方法 增加:put(K key, V value)删除:clear() remove(Object key)修改:查看:entrySet() get(Object k ...

  5. 初学java之Map接口

    Map<k,v>java.util包中的键值映射的根接口,键值映射,他是一个接口,它不能包含重复的键,一个键只能对应一个值,该接口可以通过HashMap<k,v>来实现 转载于 ...

  6. Java中Map接口的使用和有关集合的面试知识点补充

    ✅作者简介:C/C++领域新星创作者,努力修炼后端中 ✨个人主页:叶落秋白的主页

  7. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

  8. java----数据结构与算法----JavaAPI:Map接口

    Map接口 java.util.Map /*** @author chen* @date 20170308* @description 本程序介绍java.util.Map接口的定义* java.ut ...

  9. 【零基础学Java】—Map集合概述(四十三)

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

最新文章

  1. 2018年年度总结,以及2019年规划
  2. Socket.IO介绍:支持WebSocket、用于WEB端的即时通讯的框架
  3. objective-c高级编程 笔记
  4. scp传输文件,自动填充密码
  5. 小白适用的C语言数据类型转换及转换规则
  6. Linux系统编程(一)
  7. 《一天聊一个设计模式》备忘录
  8. UNIX TCP回射服务器/客户端之使用epoll模型的服务器
  9. PLSQL Developer 安装与配置
  10. linux的raid级别,RAID各种级别及特性
  11. lg手机历史机型_lg手机大全【详细介绍】
  12. Testbench编写详解
  13. 编写一个程序,将用户输入的由数字字符和非数字字符组成的字符串中的数字提取出来(例如:输入asd123,34fgh_566kkk789,则产生的数字分别是123、34、789)。
  14. javascript中map和filter的区别
  15. 让你的工作变轻松的一套免费的 iPhone 手势图标
  16. java 苹果cms 萌果_苹果maccms8x最新程序会员中心全新美化171模板分享
  17. 在html中设置表格标题的是什么标记,Html网页表格结构化标记的应用
  18. 向量法计算空间点到线段的距离(python)
  19. MYSQL的字符串支持保存表情,比如微信表情
  20. 如何在RK3588上面使用摄像头实时实现物体识别?

热门文章

  1. JAVA基础试题抄录
  2. 一文让你了解生成模型相关的解码Tricks
  3. Anaconda教程
  4. 【控制】模型预测控制 model predictive control 简介
  5. 高通量测序在物种鉴定中的应用
  6. K-Means聚类实验报告实例
  7. STM32 RCC设置
  8. 2021-2027全球与中国保温冰盒市场现状及未来发展趋势
  9. 知识图谱-知识抽取(三):非结构化数据【DeepDive:基于远程监督的“关系抽取”】【斯坦福开发的开源知识抽取系统,通过弱监督学习,从非结构化的文本中抽取结构化的关系数据 】
  10. IDEA解决开两个窗口问题