自己随便写的两个例子,可能说的不算全面吧!
import java.util.Hashtable;
public class Test1<K,V> {
public Hashtable<K,V> table = new Hashtable<K, V>();
public void put(K k,V v)
{
table.put(k, v);
}
public V get(K k)
{
return table.get(k);
}
public static void main(String[] args) {
Test1<String, String> t = new Test1<String,String>();
t.put("name", "How to learn Java");
System.out.println(t.get("name"));
}
}
/**
* 1.泛型:创建一个用类型作为参数的类 。对于类的参数是可变的
* 2.参数范围的缩减可以使用 public class Test1<K extends String,V extends Integer> 方式确定,参数的范围分别为String 类型和Integer 类型
*
*/
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
/********************************************/
List<String> list = new ArrayList<String>();
list.add("David");
list.add("Jack");
list.add("XiaoQiang");
printList(list);
List<?> list2 = list;
printList(list2);
List<People> list3 = new ArrayList<People>();
list3.add(new People("David","man",18,2400));
list3.add(new People("Wankun","man",25,5800));
list3.add(new People("Zhangsan","woman",10,400));
printList(list3);
}
/* 在函数的参数中,使用通配符来表示不同的数据类型*/
public static void printList(List<?> l)
{
for(Object o:l)
{
System.out.println(o);
}
}
}
class People
{
String name;
String sex;
int age;
double salary;
@Override
public String toString() {
return name+":"+" is "+sex+",He is "+age+".He's salary is "+salary;
}
public People(String name,String sex,int age,double salary) {
this.name = name;
this.sex = sex;
this.age = age;
this.salary = salary;
}
}
/**
* 1.JDK5中的集合论类使用了泛型,所以你可以根据你要使用的数据类型,选择相应类型的集合存储数据。
* 在集合处理数据的时候会自动进行转换。
* 2.集合中运行使用通配符,比如在某函数的参数中,你不知道集合中是哪种类型的数据,可以使用?代表数据类型
*/