泛型:
把明确数据类型的工作提前到编译时期,在创建对象的时候明确。
把类型当作参数进行传递,所以泛型还有另外一种叫法:参数化类型。
格式:
<数据类型>
注意:这里的数据类型只能是引用数据类型
优点:
将运行时期的问题提前到编译时期
避免了强制类型转化
优化了代码程序,消除不必要的黄色警告线
泛型的高级用法:(通配符)
泛型通配符<?>
任意类型,如果没有明确,那么就是Object以及任意的Java类
<? extends E>
向下限定,E及其子类
<? super E>
向上限定,E及其父类
可变参数概述
定义方法的时候不知道该定义多少个参数
格式
修饰符 返回值类型 方法名(数据类型... 变量名){}
注意:
这里的变量其实是一个数组
如果一个方法有可变参数,并且有多个参数,那么,可变参数肯定是最后一个
静态导入:
静态导入概述
格式:import static 包名….类名.方法名;
可以直接导入到方法的级别
注意事项:
方法必须是静态
如果说本类有其他的方法与静态导入的方法重名了,优先使用的是本类中的方法
增强for循环:用来遍历数组和Collection集合
格式:for(元素的数据类型 变量名 : 数组名/Collection集合名称){
使用变量即可,该变量就是元素。
}
Arrys类转换集合:
将集合转成数组
Object[] objects = integers.toArray();
将数组转成集合
List<Object> objectList = Arrays.asList(objects);
HashSet:
此类实现Set接口,由哈希表(实际为HashMap实例)支持。线程不安全,效率高,无序
元素插入到集合,与HashCode()和equals()方法有关,对象类中需要重写以作判断