天天看點

Hash Map集合和Hash Set集合

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);
    }
}