泛型一
泛型的基本概念:泛型是Java SE 1.5以后的新特性,泛型的本质是 参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别成为泛型类、泛型方法,泛型接口。Java语言引入泛型的好处是简单安全。
ArrayList<Book> myPackage = new ArrayList<Book>();
泛型可以约束集合里面的数据类型,提高集合的安全性、健壮性,也方便了集合的遍历。
public class Books {String name;String press;double price;Books(String name, String press, double price){this.name = name;this.press = press;this.price = price;}/*public String toString(){return "书名:"+this.name+",出版社"+this.press+",价格:"+this.price;}*///返回图书基本信息public String showInfo(){return "书名:"+this.name+",出版社:"+this.press+",价格:"+this.price;}
}
import java.util.ArrayList;public class Test {public static void main(String[] args) {ArrayList<Books> list = new ArrayList<Books>();list.add(new Books("红楼梦", "人民文学出版社", 150));list.add(new Books("西游记", "人民文学出版社", 100));list.add(new Books("三国演义", "人民文学出版社", 120));list.add(new Books("水浒传", "人民文学出版社", 200));for(int i = 0; i < list.size(); i++){System.out.println(list.get(i).showInfo());//如果不使用泛型,就必须强制类型转换}}}
foreach循环
1.只适用于数组或者集合类型
for(类型 变量:集合)
{
}
2.使用了泛型的集合类型,无需数据类型转换,方便了遍历。
<span style="white-space:pre"> </span>int[] arr = {0, 1, 2, 3};for (int i : arr) {i++;System.out.println(i);}System.out.println("i++之后--------------------");//foreach循环是只读的for (int i : arr) {System.out.println(i);}
输出结果为:
1
2
3
4
i++之后--------------------
0
1
2
3
泛型类:
public class A<T> {private T obj;A(T obj){this.obj = obj;}public void showType(){System.out.println("对象的实际类型是:"+this.obj.getClass().getName());}public static void main(String[] args) {A obj = new A(100);obj.showType();obj = new A("hello");obj.showType();obj = new A(new Books("呐喊", "人民出版社", 40));obj.showType();}
}
输出结果:
对象的实际类型是:java.lang.Integer
对象的实际类型是:java.lang.String
对象的实际类型是:Books
更多推荐
泛型一
发布评论