Java学习笔记之泛型(一):集合中的泛型
2017-09-26 15:06
465 查看
package com.collection.genericity; import java.util.ArrayList; import java.util.List; import org.junit.Test; /* * 泛型是JDK1.5开始使用的新特性; */ public class Demo1 { /* * 泛型: * 需求:把一个集合中的全部元素转成大写; */ @Test public void test1(){ List list = new ArrayList(); list.add("hello"); list.add("world"); list.add("china"); // 因为默认情况下,list集合可以添加任意类型的数据,所以当集合中添加了整形的数据时,就出现了异常: // java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String list.add(123); // 将集合中的所有元素全部转为大写 for (int i = 0; i < list.size(); i++){ // 因为默认情况下,集合中可以添加任意类型的数据,所以需要先将集合中的所有元素强制转换成字符串; // 如果集合中加入了整数数据,此处会报错,因为整形数据不可以强制转换成字符串类型; String str = (String) list.get(i); System.out.println("大写:" + str.toUpperCase()); } } /* * 泛型的好处: * 1、将运行时的异常提前至编译时; * 2、避免了无谓的强制类型转换; */ @Test public void test2(){ // 泛型写法 <String>:表示该集合中只能存储字符串类型的数据; List<String> list = new ArrayList<String>(); list.add("Hello"); list.add("world"); list.add("china"); // 因为已经指定了集合的存储类型只能是字符串类型,所以此处编译时就会报错; // list.add(123); for (int i = 0; i < list.size(); i++){ // 因为容器中存储的都是字符串类型的数据,所以取出的也是字符串,就不需要强制类型转换了; String str = list.get(i); System.out.println("大写:" + str.toUpperCase()); } } /* 泛型在集合中的常见应用: List<String> list = new ArrayList<String>(); true List<Object> list = new ArrayList<String>(); false List<String> list = new ArrayList<Object>(); false // 以下两种写法主要是为了让JDK1.5以后的写法兼容1.4以前的写法; List<String> list = new ArrayList(); true List list = new ArrayList<String>(); true 注意:泛型没有多态的概念,左右两边的数据类型必须要一致,或者只写一边的泛型; 推荐使用:两边都写泛型; */ @Test public void test3(){ List<String> list1 = new ArrayList<String>(); // List<Object> list2 = new ArrayList<String>(); // List<String> list3 = new ArrayList<Object>(); List<String> list4 = new ArrayList(); List list5 = new ArrayList<String>(); } }
相关文章推荐
- 【Java学习笔记】14.集合框架和泛型
- Java学习笔记——集合、泛型、异常
- 黑马程序员________Java集合Map及其JDK1.5新特性泛型机制的学习笔记
- (34)Java学习笔记——集合框架 / 泛型
- Java学习笔记29(集合框架三:泛型)
- 黑马程序员----Java集合框架学习笔记2 Map-工具类-泛型
- java 集合学习笔记2-ArrayList LinkedList Vector 泛型 增强for 可变参数
- 黑马程序员--Java基础学习笔记【集合-List、泛型】
- Java中的集合类学习笔记
- 黑马程序员学习笔记之五(java中的泛型)
- java学习笔记-集合框架-黑马
- 黑马程序员---- Java学习笔记:1.异常 2.集合
- java学习笔记---第13章泛型程序设计
- java 泛型学习笔记
- 集合 java基础学习笔记 第四天
- java泛型的学习笔记[2]—实际使用
- 【转】Java集合框架学习笔记
- [C#]C#学习笔记-接口,集合与泛型
- Java基础学习笔记(九)Comparable接口、Map接口、泛型
- java笔记总结_06_集合泛型