• Set


    Set集合存储唯一无序的数据

    public class SetTest {
        /**
         * Set:
         * 01.存贮的是唯一,无序的数据
         * 02.hashSet是常用的实现类
         * 03.存放的是对象的引用
         *   HashSet底层是hashMap实现的!
         *    01.hashSet在添加一个数据的时候,其实是把这个值当成hashMap的key来进行保存的!
         *    02.hashMap地城是通过初始化一个Entry数组来实现key,value保存数据的!
         *    03.hashMap中的Entry有四个属性变量!  key value next hash
         *    04.在hashMap中添加数据的步骤
         *       001.对key的hashCode进行hash运算,得到的值就是对应的index
         *       002.判断index所指向的数组元素是否为空,如果为空,直接插入数据
         *       003.如果不为空,依次查询entry中的next所指定的元素,
         *           判断key是否相等,如果相等,直接覆盖
         *       004.如果key不相等,通过next变量将值插入Entry数组中
    * 04.如果a.equals(b)返回的是true,那么a和b的hashCode一定相等
       * 05.如果a.equals(b)返回的是false,那么a和b的hashCode有可能相等
    */ public static void main(String[] args) { Set set = new HashSet(); set.add("1"); set.add(new String("1")); System.out.println(set.size()); // 1 } }

    Set集合测试类

    public class SetTest {
        public static void main(String[] args) {
            /*
             * Set接口存储的是唯一(不能重复),无序(新增,删除,查询)对象的集合!
             * HashSet是Set常用的实现类
             * Set存放的是对象的引用
             */
            //创建一个Set集合
            Set s=new HashSet();
            //给集合赋值
            s.add("");    //空串
            s.add(null);  //空值
            s.add(new String("abc"));
            System.out.println(s.size());  // 3
            
            Set set=new HashSet();
            set.add(new News(1, "新闻1"));
            set.add(new News(2, "新闻2"));
            set.add(new News(3, "新闻3"));
            System.out.println(set.size()); //3
            for (Object object : set) {
                System.out.println(object);
            }
        
            Set set1=new HashSet();
            set1.add(new String("abc"));
            set1.add(new String("abc"));
            set1.add(new String("abc"));
            System.out.println(set1.size()); //1
            
            String  a ="abc";
            String  b =new String("abc");
            String  c =new String("abc");
            System.out.println(a==b);  //false
            System.out.println(c==b); //false
            //具有相同内容的String对象,hashCode是一致的!
            System.out.println(b.hashCode()==c.hashCode());  //T
            
            String str1="a";
            String str2=new String("a");
            System.out.println(str1==str2); //false  内存地址不一样
            System.out.println(str1.equals(str2)); //true  内容一样
            System.out.println(str1.hashCode()==str2.hashCode()); //T
        }
    }

    TreeSet集合

    public class TreeTest {
        public static void main(String[] args) {
            /*
             * 1. HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的,只不过Set用的只是Map的key
             * 2. Map的key和Set都有一个共同的特性就是集合的唯一性.TreeMap更是多了一个排序的功能.
             * 3. hashCode和equal()是HashMap用的, 因为无需排序所以只需要关注定位和唯一性即可.
             * 4. 由于TreeMap需要排序,所以需要一个Comparator为键值进行大小比较.
             */
            Set set1=new HashSet();
            set1.add("z");
            set1.add("a");
            set1.add("y");
            set1.add("b");
            for (Object object : set1) {
                System.out.println(object);
            }
            
            System.out.println("*******************");
            TreeSet set2=new TreeSet();  //自动排序
            set2.add("z");
            set2.add("a");
            set2.add("y");
            set2.add("b");
            for (Object object : set2) {
                System.out.println(object);
            }
        }
    }
  • 相关阅读:
    谷歌机器学习
    Pycharm使用conda安装的环境
    HAN模型理解2
    HAN模型理解1
    RCNN
    深度CNN
    多通道CNN
    TextCNN
    词向量2
    词向量1.md
  • 原文地址:https://www.cnblogs.com/areyouready/p/6834805.html
Copyright © 2020-2023  润新知