泛型
-
为什么使用泛型
- 存在一些问题:
- 取集合元素的时候,取出来的是Object类型,需要使用的时候只能强转
- 添加元素的时候,缺乏规范,导致类型转换异常
- 设计原则:不要写重复的代码
- 存在一些问题:
-
泛型: 一种数据的约束 jdk 1.5之后出来的,提供编译时期的安全检查机制,给我们提供了自动的强制类型转换,安全
-
如何使用泛型?
-
常见字母
- T ——type
- K V —— key value
- E —— Element
-
使用
-
使用在类上
//一个类使用一个泛型 public class Student<T> { private T age; public T getAge() { return age; } public void setAge(T age) { this.age = age; } } //一个类使用多个泛型 public class Student<T,T2> { private T2 address; private T age;
-
-
-
接口的使用
-
public interface Usb <T>{ void use(T t); }
-
方法泛型的使用功能
public static<T> void print(T t){
System.out.println(t);
}
泛型的继承
//继承多个泛型
public class Computer<T,T2> implements Usb<T,T2>{
@Override
public void use(T t) {
}
}
//继承单个班型 要指定另外一个的类型
public class Computer<T> implements Usb<T,String>{
@Override
public void use(T t,String s) {
}
}
- 泛型的总结(泛型是一个语法塘,底层还是使用的强制类型转换)
- 泛型的嵌套
Map
-
map概述。元素是成对出现的,每个元素是由 键(Key)与 值(value)两部分组成的,是双列集合。
- 里面的Key不能重复,重复就会被覆盖。
- value 是可以重复的。
-
map 最常用的实现类(HashTable(已被替代),HashMap, LinkedHashMap, Properties, ConcurrentHashMap)
-
map的常用方法:
//添加元素
V put(K key, V value);
//获取元素
V get(Object key);
//keySet方法 :获取key的集合
Set<K> keySet();
//获取键值对 对象
Set<Map.Entry<K, V>>