当前位置 博文首页 > 古灯青衫:Hash Map集合和Hash Set集合

    古灯青衫:Hash Map集合和Hash Set集合

    作者:古灯青衫 时间:2021-01-31 00:21

     

    HashMap集合的使用

      1.1、每个集合对象的创建(new)
      1.2、从集合中添加元素
      1.3、从集合中取出某个元素
      1.4、遍历集合

    public class HashMapTest {
    public static void main(String[] args) {
    // 创建Map集合
    Map<Integer, String> map = new HashMap<>();

    // 添加元素
    map.put(1, "小明");
    map.put(8, "小周");
    map.put(15, "小张");
    map.put(31, "小剑");
    map.put(31, "king");

    // 获取元素个数
    System.out.println(map.size());

    // 获取key是8的元素
    System.out.println(map.get(8));

    // 重点,遍历Map集合
    // 第一种方式,获取所有的key,遍历key的时候,通过key来获取value。
    Set<Integer> keys = map.keySet();
    for (Integer key : keys) {
    System.out.println(key + "=" + map.get(key));
    }

    // 第二种方法:是将Map集合转换成Set集合Set集合中的每一个元素是node。
    // 这个node节点有key和value
    Set<Map.Entry<Integer, String>> nodes = map.entrySet();
    for (Map.Entry node : nodes) {
    System.out.println(node);
    }
    }
    }

    HashSet集合的使用

     

      1.1、每个集合对象的创建(new)
      1.2、从集合中添加元素
      1.3、从集合中取出某个元素
      1.4、遍历集合
      1.5、测试HashSet集合的特点
    public class HashSetTest {
    public static void main(String[] args) {

    // 创建Set集合
    Set<String> set = new HashSet<>();

    // 添加元素
    set.add("abc");
    set.add("def");
    set.add("ghi");
    set.add("jkl");
    System.out.println(set.size());

    // 遍历集合
    // 迭代器
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
    System.out.println(it.next());
    }

    System.out.println("----------------");

    // 增强for循环
    for (String s : set) {
    System.out.println(s);
    }

    // 无序不可重复
    set.add("abc");
    set.add("abc");
    set.add("abc");
    System.out.println(set.size());

    set.add("1");
    set.add("king");
    set.add("2");

    for (String s : set) {
    System.out.println("---->" + s);
    }

    System.out.println("----------------");

    // 测试Student
    Set<Student> students = new HashSet<>();
    students.add(new Student(01,"小明"));
    students.add(new Student(02,"小花"));
    students.add(new Student(01,"小明"));
    System.out.println(students.size());

    // 遍历
    for (Student s : students) {
    System.out.println(s);
    }
    }
    }

    class Student {
    int id;
    String name;

    public Student() {
    }

    public Student(int id, String name) {
    this.id = id;
    this.name = name;
    }

    @Override
    public String toString() {
    return "Student{" +
    "name='" + name + '\'' +
    '}';
    }

    @Override
    public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    Student student = (Student) o;
    return Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
    return Objects.hash(name);
    }
    }
     


    bk
    下一篇:没有了