小白学java

小白学java第42天

HashSet和TreeSet的去重机制:

        1.HashSet的去重机制: hashCode() + equals(),底层先通过存入对象,进行运算得到一个hash值,通过hash值得到对应的索引,如果发现table索引所在的位置,没有数据,就直接存放如果有数据,就进行equals比较[遍历比较],如果比较后,不相同,就加入,否则就不加入

        2.TreeSet的去重机制:如果你传入了一个Comparator匿名对象,就使用实现的compare去重,如果方法返回0,就认为是相同的元素/数据,就不添加,如果你没有传入一个Comparator匿名对象,则以你添加的对象实现的Compareable接口的compareTo去重

泛型:

        优点:

                1.编辑时检查元素类型,提高了安全性

                2.减少了类型转换的次数,提高效率

                3.不再提示编译警告

        理解:

                1.泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题

                2.在类声明或实例化时只要指定好需要的具体的类型即可。

                3.Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常,代码更加简洁。

                4.泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方
法的返回值的类型,或者是参数类型

        声明:

                interface接口<T>{}和class类<K,V>{}           /比如:List , ArrayList

        说明:
                1.其中,T,K,V不代表值,而是表示类型

                2.任意字母都可以,常用T表示,是Type的缩写

        实例化:要在类名后面指定类型参数的值(类型)

                例如:1. List<String> strList = new ArrayList<String>{}

                           2. Iterator<Customer> iterator = customers.iterator{}

        注意事项:

        1.interface List<T>{}, public class HashSet<E>{}等等   其中T,E只能是引用类型

        2.在指定泛型具体类型后,可以传入该类型或者其子类类型

        3.泛型使用形式:List<Integer> list1 =new ArrayList<Integer>{}

                                    简写:List<Integer> list2 = new ArrayList<>{}

                                   (编译器会进行类型推断)

        4.ArrayList list3 = new ArrayList()默认给它的泛型是Object 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值