还不能正确理解Java的泛型类型到底是个什么?接下来好程序员就为大家分析一下。 泛型是将数据类型参数化。(将数据类型作为参数传递)。语法:<数据类型> 1.1:泛型集合:将数据类型作为集合的参数,集合中每个元素必须都是这个泛型的数据类型。 1.1.1:泛型集合优点:减少频繁的装箱和拆箱,以及数据类型的判断 。 1.1.2:泛型集合的特点:一个集合只存一种类型的数据。 1.1.3:语法:集合类型<数据类型> 集合名=new 集合类型<[数据类型]>(); eg:public static void main(String[] args) { //创建集合对象 List<Cat> alist2=new ArrayList<>(); //向集合中添加元素 alist2.add(new Cat("胖虎", 2)); alist2.add(new Cat("大熊", 1)); alist2.add(new Cat("静香", 3)); for (Cat a : alist2) { System.out.println(a.nickName+","+a.age); } } 1.2: 泛型迭代器:将数据类型作为迭代器的参数,迭代出来的每个元素是泛型的数据类型。 注意:如果是用迭代器遍历泛型集合,那么迭代器一定要用泛型迭代器。 1.2.1:泛型迭代器的作用:减少频繁的类型转换的问题。 1.2.2:语法:Iterator<数据类型> 迭代器对象名=集合名.iterator(); eg:public static void main(String[] args) { //创建集合对象 List<Cat> alist2=new ArrayList<>(); //向集合中添加元素 alist2.add(new Cat("胖虎", 2)); alist2.add(new Cat("大熊", 1)); alist2.add(new Cat("静香", 3)); /*用迭代器遍历集合*/ //获得集合的迭代器 Iterator<Cat> it1=alist2.iterator(); //先判断迭代器后面是否有元素可迭代 while (it1.hasNext()) { //迭代元素 Cat ob1=it1.next(); System.out.println(ob1.nickName+","+ob1.age); } } 1.3:泛型类(扩展):将泛型作类的参数来用。 eg:/** * 泛型类,<T>表示泛型,T是数据类型占位符,在类中T当作一种数据类型来用 * @author sx * @version 1.0 2019年8月27日 * @param <T> */ public class Student<T> { /** * 姓名属性 */ public String sname; /** * 属性 */ public T ss; } public static void main(String[] args) { //创建泛型类的对象 Student<Integer> stu1=new Student<>(); stu1.sname="张三"; stu1.ss=11; //创建泛型类的对象 Student<String> stu2=new Student<>(); stu2.sname="李四"; stu2.ss="哈哈"; } 1.4:泛型方法:将数据类型作为方法的参数的类型。 eg:/** * 泛型方法 */ public <T> void show(T aa) { System.out.println("泛型参数为:"+aa); } public static void main(String[] args) { //创建类的对象 Hello h1=new Hello(); //用对象调用泛型方法 h1.show("我是千锋人"); h1.show(11); h1.show('男'); } |
|
来自: 好程序员IT > 《Java培训教程》