码迷,mamicode.com
首页 > 其他好文 > 详细

集合中的泛型

时间:2017-03-11 18:37:43      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:arraylist   oid   lang   数据   data-   泛型   pre   next   ted   

为什么要有泛型?
  1. 解决元素存储的安全问题(集合没有泛型时,任何类型都可以添加进集合,类型不安全
  2. 解决获取数据元素时,需要类型强转的问题(读取集合元素强转时很繁琐,可能会报 ClassCastException)

关于以上两点的说明:

  1. public class TestGeneric {
  2. @Test
  3. public void test() {
  4. List list = new ArrayList();
  5. list.add(78);
  6. list.add(91);
  7. list.add(65);
  8. list.add(new String("cdf"));// 任何类型都可以添加进集合,而本意只想添加 Integer 类型
  9. Iterator iterator = list.iterator();
  10. while (iterator.hasNext()) {
  11. int i = (Integer) iterator.next();// 有 ClassCastException 的隐患
  12. System.out.println(i);
  13. }
  14. }
  15. }

使用泛型解决以上问题:
  1. public class TestGeneric {
  2. @Test
  3. public void test() {
  4. List<Integer> list = new ArrayList<Integer>();
  5. list.add(78);
  6. list.add(91);
  7. list.add(65);
  8. // list.add(new String("cdf")); 此时只能添加 Integer 类型,添加 String 类型数据会报错
  9. Iterator<Integer> iterator = list.iterator();
  10. while (iterator.hasNext()) {
  11. int i = iterator.next();// 没有报 ClassCastException 隐患
  12. System.out.println(i);
  13. }
  14. }
  15. }
注意:泛型只能填引用类型;JDK 7.0之后,后面的尖括号内的泛型可以省略

集合中的泛型

标签:arraylist   oid   lang   数据   data-   泛型   pre   next   ted   

原文地址:http://www.cnblogs.com/chendifan/p/6535727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!