java泛型集合,Collection工具类
程序员文章站
2024-01-14 09:02:40
...
泛型集合的概念:
参数化类型,类型安全的集合,要求元素的类型一致。(在Collection接口中定义)
特点:
1编译时即可检查。而非运行是抛出一次
2访问时,不必类型转换(拆箱)
3不同泛型直接引用不能互相赋值,泛型没有多态
在创建集合时规范元素的类型,所有表示的东西均变为相应类型
ArrayList LIist = new ArrayList();
此时add等方法的调用参数将转为Double类型
注意前后两个<>类型必须一致,但是ArrayList可以实现多态
高级泛型
实例泛型:
泛型类:创建对象时指明类型
class MyClass<E>{// E=element
public void n1(E e){
}
}
MyClass<Integer> mc1=new MyClass<Integer>();
mc.n1(100);
MyClass<Double> mc1=new MyClass<Double>();
mc.n1(1.2);
泛型接口:实现接口时指明类型
interface MyInterface<T>{//T = Type
public void n2(T t);
}
class MyImpClass implements MyInterface<Byte>{
public void n2(Byte t){
}
此时使用 MyInterface <Byte> mi= new MyImpClass();来保证泛型匹配
静态泛型:
class MyClass{
public static <T extands Y> void print(T t){//静态泛型加在方法上,在方法调用时完成泛型
}
}
Collections类:
集合工具类,定义了除了存取以外的集合常用方法。
public static void reverse(List list);反转指定列表元素排序
public static void shuffle(List list);随机指定列表元素排序
public static <E (作为对父类的约束)>void sort(List list);升序排序,list应该extands Comparable(可排序)
子类重写comparable方法:
1.实现comparable接口
class Site implements Comparable<Site>{
public int compareTo(Site p){
return this.age-p.age;
}
}
2传入一个comparator比较器
import java.util.Comparator;
public int compare(Site p,Site q){
return p.age-q.age;
}