集合中的泛型

author author     2022-08-24     663

关键词:

为什么要有泛型?
  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之后,后面的尖括号内的泛型可以省略

java中的泛型机制

...。(运行阶段泛型没用)使用了泛型好处是什么?第一:集合中存储的元素类型统一。第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的向下转型。泛型的缺点是什么?导致集合中存储的元素缺乏多样性。代... 查看详情

java中的泛型

...  Tt:Type类型是否使用泛型的对比不使用泛型/***创建集合对象,不使用泛型*好处:*集合不使用泛型,默认的类型就是Object类型,可以存储任意类型的数据。*弊端:*不安全,会引发异常*/好处(举例):publicclassD 查看详情

jdk中的泛型

...  1.JDK1.4 以前类型不明确:     ① 装入集合的对象被当作Object 类型对待,从而失去了自己的原有类型;              ② 从集合中取出时往往需要转型,... 查看详情

浅析java中的泛型(代码片段)

...llo!大家好!今天的主题就是:泛型。在使用集合类时,大家就已经接触到泛型了,那就是每个集合类后面的尖括号<>,这样一对尖括号,在java中就称为泛型。那么泛型这一个点,我们又该知... 查看详情

java中的泛型

...<E>。其实这就是泛型。例如Collection<E>代表的是集合里只能放某一个类的对象。 2.泛型的好处(1)提高安全性(将运行期的错误转换到编译期)(2)省去强转的麻烦 3.泛型的基本使用<>中放的必须是引用数据... 查看详情

快速入门系列--clr--03泛型集合

.NET中的泛型集合在这里主要介绍常见的泛型集合,很多时候其并发时的线程安全性常常令我们担忧。因而简述下.NET并发时线程安全特性,其详情请见MSDN。普通集合都不支持多重并发写操作部分支持单线程写和并发读操作同时.NE... 查看详情

java中的泛型

...抽象类后面跟的有<E>就说明要使用,一般来说就是在集合中使用。/ 查看详情

java基础语法详解java中的泛型(代码片段)

...装类这章介绍过了一些,但那些知识是为后面介绍Java集合框架做的铺垫,而今天这章再配合之前那章,将会完整的介绍Java中的泛型!文章目录1.前章回顾1.1泛型类的代码示例1.2泛型类的意义1.3泛型是如何编译的2.... 查看详情

java中的泛型用法一种:<t>返回值用法。

...以接收不同类型的参数,比如下图,使用泛型来操作List集合,然后向List中添加一条数据,看是否可以添加成功,创建泛型方法如图所示。2、然后在写一个main方法来测试一下这个泛型方法,先向集合中添加一条String类型的数据... 查看详情

c# Reflection - 查找集合的泛型类型

】c#Reflection-查找集合的泛型类型【英文标题】:c#Reflection-FindtheGenericTypeofaCollection【发布时间】:2011-02-0309:37:45【问题描述】:我正在反映一个属性“Blah”,它的类型是ICollectionpublicICollection<string>Blahget;set;privatevoidbutton1_Clic... 查看详情

java的泛型

  java集合  Java集合有一个缺点,就是把一个对象“丢进”集合里后,集合就会“忘记”这个对象的数据类型,当再次取出该对象时,该对象的编译类型就变成了Object类型(其运行时类型没变)。  之所以这样设计是因为... 查看详情

泛型的泛型的好处

...,这是非泛型类和非泛型方法无法具备的。泛型通常用与集合以及作用于集合的方法一起使用。.NETFramework2.0版类库提供一个新的命名空间System.Collections.Generic,其中包含几个新的基于泛型的集合类。建议面向2.0版的所有应用程序... 查看详情

在不知道类型是啥的情况下调用返回泛型集合的泛型方法? C#

】在不知道类型是啥的情况下调用返回泛型集合的泛型方法?C#【英文标题】:Invokingagenericmethodthatreturnsacollectionofgenericswithoutknowingwhatthetypeis?C#在不知道类型是什么的情况下调用返回泛型集合的泛型方法?C#【发布时间】:2010... 查看详情

为啥我不能在编译时将整数添加到泛型集合中,即使使用引用类型作为数字创建的泛型? [复制]

】为啥我不能在编译时将整数添加到泛型集合中,即使使用引用类型作为数字创建的泛型?[复制]【英文标题】:WhyicantaddIntegerintogenericcollectionatcompiletimeitselfeventhoughthegenericscreatedwithreferencetypeasNumber?[duplicate]为什么我不能在编译... 查看详情

java泛型的作用及其基本概念

...,但是java中的泛型与C#中的泛型是有本质区别的,首先从集合类型上来说,java中的ArrayList<Integer>和ArrayList<String>是同一个类型,在编译时会执行类型擦除,及java中的类型是伪泛型,伪泛 查看详情

非泛型集合

...的泛型等效类。  3)、可以使用一个整数索引访问此集合中的元素;索引从零开始。  4)、可以接收null空引用(VB中的Nothing)。  5)、允许 查看详情

java的泛型---(英雄联盟集合嵌套案例)(代码片段)

...rE增强for泛型类的测试 泛型方法的测试 泛型接口的测试集合的嵌套遍历 案例一案例二 集合嵌套案例(英雄联盟案例)Java的泛型JDK1.5以后出现的机制为什么会有泛型呢?早期的Object类型可以接受任意的对象类型... 查看详情

Swift 中的泛型数组

】Swift中的泛型数组【英文标题】:ArraysofGenericsinSwift【发布时间】:2015-04-2211:50:24【问题描述】:我一直在玩不同类型的泛型类数组。用一些示例代码最容易解释我的问题://Obviouslyaverypointlessprotocol...protocolMyProtocolvarvalue:Selfgete... 查看详情