Java 中的 Set 和 Map

1、Map

Map的官方文档

常用方法
Map<K, V> 即 Map 中定义的 K 类型的 key 和 V 类型的 value 的映射关系的类。

方法解释
K.getKey()返回 entry 中的 key
V.getValue()返回 entry 中的 value
V.get(Object key)返回 key 对应的 value
V. getOrDefault(Object key, V defaultValue)返回 key 对应的 value,key 不存在,返回默认值
V.put(K key, V value)设置 key 对应的 value
V.remove(Object key)删除 key 对应的映射关系
boolean containsKey(Object key)判断是否包含 key
boolean containsValue(Object value)判断是否包含 value

一个 Map 只能维护一组映射关系,如果有多组映射,就需要多组 Map

2、Set

Set 的官方文档

常用方法
Set< K > 即 Set中定义的 K 类型的 key 的类

方法解释
boolean add(E e)添加元素,但重复元素不会被添加成功
void clear()清空集合
boolean contains(Object o)判断 o 是否在集合中
Iterator < E> iterator()返回迭代器
boolean remove(Object o)删除集合中的 o

Set 的 add 方法加入多个相同元素,在 Set 中只能保存一份,可以用来去重

3、代码示例

map 的示例代码

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

class Student {
    public String name;
    public int age;
    public String grade;
    public String school;

    public Student(String name, int age, String grade, String school) {
        this.name = name;
        this.age = age;
        this.grade = grade;
        this.school = school;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", grade='" + grade + '\'' +
                ", school='" + school + '\'' +
                '}';
    }
}
public class TestMap {
    public static void main(String[] args) {
        Student s1 = new Student("初一", 18, "大一","清华");
        Student s2 = new Student("初二", 19, "大二","北大");
        Student s3 = new Student("初三", 20, "大三","哈佛");

       Map<String,Student> studentMap = new HashMap<>();
       studentMap.put(s1.name,s1);
       studentMap.put(s2.name,s2);
       studentMap.put(s3.name,s3);

       String name = "初三";
        System.out.println(studentMap.get(name));

        Student s4 = new Student("初二",22,"大四","陕科大");
        studentMap.put(s4.name,s4);
        String name2 = "初二";
        System.out.println(studentMap.get(name2));

        Student ss = studentMap.getOrDefault("初五",new Student("初五",12,"一年级","小学"));
        System.out.println(ss);

        // 遍历 Map
        for (Map.Entry<String,Student> entry : studentMap.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }

        // 用迭代器来遍历
        Iterator<Map.Entry<String,Student>> iterator = studentMap.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String,Student> entry = iterator.next();
            System.out.println(entry.getKey() + ":" + entry.getValue());
        }
    }
}

Set 的示例代码

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class TestSet {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        // 加入元素,add 加入多个相同元素,在 Set 中只有一份,作用:去重
        set.add("初一");
        set.add("初二");
        set.add("初三");
        set.add("初四");
        set.add("初五");

        // 看某元素是否在 Set 中存在
        System.out.println(set.contains("初一"));

        // 删除某元素
        set.remove("初一");
        System.out.println(set.contains("初一"));

        System.out.println(set);
        for (String s:set) {
            System.out.println(s);
        }

        // 用迭代器来遍历
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值