zoukankan      html  css  js  c++  java
  • [javaSE] 集合框架(HashSet)

    Set:元素是无序,不可重复的

    HaseSet:底层数据结构是哈希表

    定义一个类Demo

    获取Demo对象,system.out.println(demo),打印demo对象,Demo@xxxxxx

    Demo对象在内存中是按照哈希值存储在哈希表中,取出也是按照哈希值,所以是无序的

    import java.util.HashSet;
    
    class Demo{
    }
    public class HashSetDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Demo demo1=new Demo();
            Demo demo2=new Demo();
            System.out.println(demo1);
            System.out.println(demo2);
            HashSet set=new HashSet();
            set.add(demo1);
            set.add(demo2);
            System.out.println(set);
        }
    
    }

    结果:

    Demo@1a8fa0f0

    Demo@4b8efa2f

    [Demo@4b8efa2f, Demo@1a8fa0f0]

    定义一个类Demo

    重写hashCode()方法,返回一个固定的数字,例如:90,打印对象显示,Demo@3c

    获取多个对象,哈希值都是一样的,此时存入HaseSet中,使用equals()方法,判断是否是同一个对象,如果不是同一个对象,会顺延存储

    import java.util.HashSet;
    
    class Demo{
        @Override
        public int hashCode() {
            return 90;
        }
        @Override
        public boolean equals(Object obj) {
            System.out.println("调用到此处说明,判断是否同一对象");
            return super.equals(obj);
        }
    }
    public class HashSetDemo {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            Demo demo1=new Demo();
            Demo demo2=new Demo();
            System.out.println(demo1);
            System.out.println(demo2);
            HashSet set=new HashSet();
            set.add(demo1);
            set.add(demo2);
            System.out.println(set);
        }
    
    }

    结果:

    Demo@5a

    Demo@5a

    调用到此处说明,判断是否同一对象

    [Demo@5a, Demo@5a]

  • 相关阅读:
    浅析http缓存
    多级路由请求js文件路径不对的解决方法
    移动端屏幕适配原理以及方法讲解
    zoom与scale的异同
    querySelectorAll选择器的js实现
    垂直居中效果汇总
    windows配置php开发环境
    CentOS 6.2安装nagios
    Ganglia安装
    Ubuntu 14.04上安装Riak
  • 原文地址:https://www.cnblogs.com/taoshihan/p/5484104.html
Copyright © 2011-2022 走看看