博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android(java)学习笔记28:泛型概述和基本使用
阅读量:5081 次
发布时间:2019-06-13

本文共 4005 字,大约阅读时间需要 13 分钟。

1. 泛型的概述和基本使用:

1 package cn.itcast_01; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5  6 /* 7  * ArrayList存储字符串并遍历 8  *  9  * 我们按照正常的写法来写这个程序, 结果确出错了。10  * 为什么呢?11  *         因为我们开始存储的时候,存储了String和Integer两种类型的数据。12  *         而在遍历的时候,我们把它们都当作String类型处理的,做了转换,所以就报错了。13  * 但是呢,它在编译期间却没有告诉我们。14  * 所以,我就觉得这个设计的不好。15  * 回想一下,我们的数组16  *         String[] strArray = new String[3];17  *         strArray[0] = "hello";18  *         strArray[1] = "world";19  *         strArray[2] = 10;20  * 集合也模仿着数组的这种做法,在创建对象的时候明确元素的数据类型。这样就不会在有问题了。21  * 而这种技术被称为:泛型。22  * 23  * 泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。24  * 格式:25  *         
<数据类型>
26 * 此处的数据类型只能是引用类型。27 * 好处:28 * A:把运行时期的问题提前到了编译期间29 * B:避免了强制类型转换30 * C:优化了程序设计,解决了黄色警告线31 */32 public class GenericDemo {33 public static void main(String[] args) {34 // 创建35 ArrayList
array = new ArrayList
();36 37 // 添加元素38 array.add("hello");39 array.add("world");40 array.add("java");41 // array.add(new Integer(100));42 //array.add(10); // JDK5以后的自动装箱43 // 等价于:array.add(Integer.valueOf(10));44 45 // 遍历46 Iterator
it = array.iterator();47 while (it.hasNext()) {48 // ClassCastException49 // String s = (String) it.next();50 String s = it.next();51 System.out.println(s);52 }53 54 // 看下面这个代码55 // String[] strArray = new String[3];56 // strArray[0] = "hello";57 // strArray[1] = "world";58 // strArray[2] = 10;59 }60 }

类 ArrayList<E>---像这种加上<E>,都是表示要明确类型

 

下面我们来改进以前的代码:ArrayList存储字符串并遍历泛型:

1 package cn.itcast_02; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5  6 /* 7  * 泛型在哪些地方使用呢? 8  *         看API,如果类,接口,抽象类后面跟的有
就说要使用泛型。一般来说就是在集合中使用。 9 */10 public class ArrayListDemo {11 public static void main(String[] args) {12 // 用ArrayList存储字符串元素,并遍历。用泛型改进代码13 ArrayList
array = new ArrayList
();14 15 array.add("hello");16 array.add("world");17 array.add("java");18 19 Iterator
it = array.iterator();20 while (it.hasNext()) {21 String s = it.next();22 System.out.println(s);23 }24 System.out.println("-----------------");25 26 for (int x = 0; x < array.size(); x++) {27 String s = array.get(x);28 System.out.println(s);29 }30 }31 }

 

下面我们来改进以前的代码:ArrayList存储自定义对象并遍历泛型

1 package cn.itcast_02; 2  3 import java.util.ArrayList; 4 import java.util.Iterator; 5  6 /* 7  * 需求:存储自定义对象并遍历。 8  *  9  * A:创建学生类10  * B:创建集合对象11  * C:创建元素对象12  * D:把元素添加到集合13  * E:遍历集合14  */15 public class ArrayListDemo2 {16     public static void main(String[] args) {17         // 创建集合对象18         // JDK7的新特性:泛型推断。19         // ArrayList
array = new ArrayList<>();20 // 但是我不建议这样使用。21 ArrayList
array = new ArrayList
();22 23 // 创建元素对象24 Student s1 = new Student("曹操", 40); // 后知后觉25 Student s2 = new Student("蒋干", 30); // 不知不觉26 Student s3 = new Student("诸葛亮", 26);// 先知先觉27 28 // 添加元素29 array.add(s1);30 array.add(s2);31 array.add(s3);32 33 // 遍历34 Iterator
it = array.iterator();35 while (it.hasNext()) {36 Student s = it.next();37 System.out.println(s.getName() + "---" + s.getAge());38 }39 System.out.println("------------------");40 41 for (int x = 0; x < array.size(); x++) {42 Student s = array.get(x);43 System.out.println(s.getName() + "---" + s.getAge());44 }45 }46 }

 

转载于:https://www.cnblogs.com/hebao0514/p/4529759.html

你可能感兴趣的文章
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
重启rabbitmq服务
查看>>
正则表达式(进阶篇)
查看>>
无人值守安装linux系统
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>
黑马程序员——2 注释
查看>>
用OGRE1.74搭建游戏框架(三)--加入人物控制和场景
查看>>
转化课-计算机基础及上网过程
查看>>
android dialog使用自定义布局 设置窗体大小位置
查看>>
ionic2+ 基础
查看>>
互联网模式下我们更加应该“专注”
查看>>
myeclipse集成jdk、tomcat8、maven、svn
查看>>
查询消除重复行
查看>>
Win 10 文件浏览器无法打开
查看>>
HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)
查看>>
-bash: xx: command not found 在有yum源情况下处理
查看>>
[leetcode]Minimum Path Sum
查看>>