• JAVA中Set集合--HashSet的使用


    一、使用HashSet添加一个String类型的值:

    public static void hashSet1(){
      HashSet<String> hashSet = new HashSet<String>();
      hashSet.add("java001");
      hashSet.add("java01");
      hashSet.add("java011");
      hashSet.add("java002");
      hashSet.add("java004");
     
      //使用常用迭代器获取输出内容
      Iterator<String> iterator = hashSet.iterator();
      while (iterator.hasNext()) {
        String next = iterator.next();
        System.out.println(next);
      }
    }

    二、使用HashSet添加一个对象:

    public static void hashSet2(){
        HashSet<Student> hashSet = new HashSet<Student>();
        hashSet.add(new Student("zhangsan1", 21));
        hashSet.add(new Student("zhangsan1", 21));
        hashSet.add(new Student("zhangsan2", 21));
        hashSet.add(new Student("zhangsan3", 23));
        hashSet.add(new Student("zhangsan4", 24));
        //使用常用迭代器获取值
        Iterator<Student> iterator = hashSet.iterator();
        while (iterator.hasNext()) {
            Student next = (Student) iterator.next();
            System.out.println(next.getName() + " " + next.getAge());
        }
    }    

    上面使用到的Student对象类:

    class Student {
    private String name;
    private int age;
     
    public Student(String name, int age) {
    this.name = name;
    this.age = age;
    }
     
    //复写hashCode方法
    @Override
    public int hashCode() {
     
    return 60;
    }
     
    //复写equals方法
    @Override
    public boolean equals(Object arg0) {
    if (!(arg0 instanceof Student)) {
    return false;
    }
    Student studet = (Student) arg0;
    return this.name.equals(studet.name) && this.age == studet.age;
    }
     
    public String getName() {
    return name;
    }
     
    public void setName(String name) {
    this.name = name;
    }
     
    public int getAge() {
    return age;
    }
     
    public void setAge(int age) {
    this.age = age;
    }
    }

    最后使用调用main方法得出结果:

    java004
    java002
    java011
    java001
    java01
    -------------------------
    zhangsan1 21
    zhangsan2 21
    zhangsan3 23
    zhangsan4 24

  • 相关阅读:
    Win32串口API
    Windows核心编程 第4章 进程
    大家都来吐槽下12306的网站bug吧
    HttpRequest模拟Post和Get提交代码
    jquery.masonry + jquery.infinitescroll 实现瀑布流布局
    三层架构之泛型应用
    listView 中,大图标时,各个图标之间间距的控制
    Windows Phone APP的设计过程
    分享三个小故事
    最值得创业者聆听的10大TED演讲(中文字幕视频)
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/9247650.html
Copyright © 2020-2023  润新知