java泛型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java泛型相关的知识,希望对你有一定的参考价值。
泛型
1)在编译时,由编译器约束放入集合中的类型
2)在运行时,编译器会擦除原泛型类型
3)泛型二边要么都不使用约束,要么二边约束一致类型,同时二边必须使用引用类型
4)为了与JDK1.4兼容,泛型可以一边有约束,一边无约束
思考:不利用中间变量,将二个数交互
5)当一个类中出大量的泛型方式或属性/字段,此时可以将该类作成泛型类
6)如果使用泛型通配符,只能获取与泛型具体类型无关的信息,例如:长度。
7)有二个类,初学者一定要注意:Collections和Arrays
``
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("liwen");
list.add("jiayou");
show(list);
}
public static void show(List list)
{
for(Object obj:list)
{
String s = (String) obj;
System.out.println(s + "\t");
}
}
` public static void main(String[] args) {
Boolean numA = false;
Boolean numB = true;
System.out.println("numA" + numA);
System.out.println("numB" + numB);
swap(numA,numB);
}
//泛型方法
public static <T> void swap(T numA,T numB) {
T temp = numA;
numA = numB;
numB = temp;
System.out.println("numA" + numA);
System.out.println("numB" + numB);
}`
//泛型类
public class Apple<T> {
//泛型方式
public void buy(T t){
System.out.println("苹果:" + t + "信息");
}
}
使用:
Apple<Integer> a1 = new Apple<Integer>();
a1.buy(10);
Apple<Double> a2 = new Apple<Double>();
a2.buy(5.5);
通配符
public static void main(String[] args) {
List<Boolean> booleanList = new ArrayList<Boolean>();
booleanList.add(true);
booleanList.add(false);
show(booleanList);
}
public static void show(List<?> list) {
System.out.println("集合长度为:" + list.size());
for(Object o : list){
System.out.println(o);
}
}
排序:
List<String> stringList = new ArrayList<String>();
stringList.add("one");
stringList.add("two");
stringList.add("three");
System.out.println("倒序前:");
for(String s : stringList){
System.out.print(s+"\t");
}
reverse(stringList);
System.out.println("\n倒序后:");
for(String s : stringList){
System.out.print(s+"\t");
}
}
//倒序集合
public static void reverse(List<String> stringList) {
//集合非空且至少有2个值
if(stringList!=null && stringList.size()>=2){
Collections.reverse(stringList);
}
}
以上是关于java泛型的主要内容,如果未能解决你的问题,请参考以下文章
什么意思 在HashMap之前 ? Java中的泛型[重复]