A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丶唯萌Pro 中级黑马   /  2017-10-24 22:59  /  1014 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 丶唯萌Pro 于 2017-10-24 23:01 编辑

Set
        使用HashSet存储字符串并遍历
                创建集合对象
                添加元素对象
                遍历集合对象
        Set集合的特点:
                无序(存储和读取的顺序有可能不一样)
                唯一(不允许重复)
                没有索引
        使用HashSet存储自定义对象并遍历
                创建集合对象
                创建元素对象
                添加元素对象
                遍历集合对象
        通过查看源码发现:
                HashSet的add()方法,首先会使用当前集合中的每一个元素和新添加的
                元素进行hash值比较,如果hash值一样,比较地址和值或者使用equals方法
                进行比较,比较结果一样,则认为是重复不添加
                所有比较结果都不一样则添加

        创建Person类
                给set/get方法,有参,无参构造
                重写toString方法
                重写hashcode以及equals方法
                //我们发现,当hashCode方法永远返回整数1时,所有对象的hash值都是一样的
                有一些对象他的成员变量完全不同,但是他们还需要进行hash和equals方法比较
                如果我们可以让成员变量不同的对象,他们的hash值也不同,这就可以减少一部分
                equals方法的比较从而可以提高我们程序的效率

                可以尝试这让hashCode方法的返回值和对象的成员变量有关
                可以让hashcode返回所有成员变量之和,让基本数据类型直接
                相加然后引用数据类型获取hashcode方法返回值后在相加
                //就是说当我们的hashcode相同时,我们在让其使用equals判断是否是相同的元素
        Collection:
                面试题:
                        Collection和Collections
                        Collection:是集合体系的最顶层,包含了集合体系的共性,List和Set
                        Collections:是一个工具类,方法用于操作Collection
                Collections工具类:
                        static intbinarySearch(List list,Object key):二分查找法查找指定元素在指定列表的索引位置
                        //创建一个List对象
                        static void copy(List dest,List src):是把源列表中的数据覆盖到目标列表
                        //目标列表的长度至少等于源列表的长度
                        //创建源列表
                        //创建目标列表
                        static void fill(List list,Object obj):使用指定的对象填充指定列表的所有元素
                        static void reverse(List<?> list):反转
                        static void shuffle(List list):随机置换
                        static void sort(List<T> list):按照列表中数据 的自然顺序进行排序
                        static void swap(List list,int i,int j):将指定列表中的索引进行位置互换
        Map接口的概述:
                需求:实现学号和姓名这样有对应关系的数据存储
                为了体现这种有对应关系的数据,我们使用以前所学的内容是可以实现的,
                但是略有不变,所以java又给我们提供了一种专门用于存储对应关系的集合,Map
                Map:将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射到一个值
                Map和Collection有什么区别?
                        Map:是一个双列集合,常用于处理有对应的数据,Key是不可以重复的,我们也称之为夫妻对集合
                        Collection:是单列集合,Collection有不同的子体系,有的允许重复有索引有序,有的不允许重复而且无序,那么我们也称之为单身汉集合
                一对一:一个学号对应一个姓名
        Map的常用功能;
                Map的常用功能:
                 映射功能:
                         V put(K key, V value)
                 获取功能:
                         V get(Object key)
                        int size()
                判断功能:
                        boolean containsKey(Object key)
                         boolean containsValue(Object value)
                         boolean isEmpty()

                  删除功能:
                         void clear()  
                         V remove(Object key)  

                 遍历功能:
                          Set<Map.Entry<K,V>> entrySet()
                          Set<K> keySet()  
                          Collection<V> values()

        map获取所有d的key或者values
                Set<K> keySet()
                Collection<V> vlaues()
        遍历Map:
                第一种方式:
                //获取所有的key
                Set<String> keys = map.keySet();
                        for(String key : keys){
                                //根据key去获取value
                                String value = map.get(key);
                        }
                第二种方式:
                        使用entrySet()
        使用HashMap存储数据并遍历(字符串做为key)
        使用HashMap存储数据并遍历(自定义对象做为key):
                步骤:
                        创建map对象
                        创建key对象
                        添加映射关系
                        遍历map对象
                需求:定义一个方法,参数为两个int类型的变量,对参数求和并返回
                定义一个方法,参数为三个int类型的变量,对参数求和并返回
                。。。
        JDK1.5特性:可变参数:
                当参数不确定时,类型要明确,java可以把多个参数直接帮我们转成数组

                实参:一个参数一个参数的传递
                形参:类型...变量名
                注意:在可变参数的后面不能追加参数
                        参数的数量自定义,可以给多个,也可以一个也不给。
        

Landlords.zip

836 Bytes, 阅读权限: 10, 下载次数: 1

模拟斗地主

2 个回复

倒序浏览
不错哦

点评

差的远~  发表于 2017-10-29 23:20
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马