//泛型:定义一种模板,eg. 代码中创建泛型化集合类ArrayList<类型>
/*
1.Java 标准库提供的ArrayList,ArrayList内部就是一个Object[]数组
2. 向上转型
ArrayList<Integer>和ArrayList<Number>两者完全没有继承关系。
4.泛型接口
Arrays.sort(Object[]) 可以对任意数组进行排序,but 待排数组需要实现Comparable<T>这个泛型接口
5.
*/
//例子1:泛型的使用
public class ArrayList<T>{
private T[] array;
private int size;
public void add(T e){
...
}
public void remove (int index){...}
public T get(int index){...}
}
//创建可以存储字符串的数组
ArrayList<String> strlist =new ArrayList<String>();//调用ArrayList 的构造函数
strlist.add(new Integer(123))//compile error
//创建可以存储Float的数组
ArrayList<Float> floatlist=new ArrayList<Float>();
//例子2:向上转型
public class ArrayList<T> implements List<T>{
List<String> list=new ArrayList<String>();//ArrayList 向上转型变成List
}
//例子4:泛型接口
public interface Comparable<T>{
int compareTo(T o);
}
//String本身实现了Comparable<T>泛型接口
String[] mystr=new String[]{'apple','banana'};
Arrays.sort(mystr);
Arrays.toString(mystr);
//当自己创建的类没有实现Comparable<T>泛型接口时,直接利用Array.sort(the instance of class),会报错
//重新定义
class Person implements Comparable<Person>{
public int compareTo(Person other){
return this.name.compareTo(other.name);
}
}
Java_泛型
最新推荐文章于 2024-01-31 00:57:56 发布