欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}