泛型相关知识

自从上次参加完俱乐部的聚会后,觉的有必要总结下泛型的用法,虽然脑袋讲的 非常仔细,没有必要再写,但做为学习者,我喜欢把自己的所学以文章的形式展示出 来,这样也有我的一部分。我们可以用一个简单的例子来做实验:实例化一个 ArrayList和一个List<int>,然后往其中加入成员,最后分别读取出第一个 成员,进行一个加法操作。

  ArrayList _list = new ArrayList();

            _list.Add(1);

            _list.Add("a");

         

            int i = (int)_list[0]  + 1;

            List<int> _list2 = new List<int>();

            _list2.Add(1);//正确

         

            int j = (int)_list2[0] + 1;

ArrayList的缺点:

1:处理值类型时,出现装箱、折箱操作,影响性能。_list.Add(1)时会发生装 箱。

2:处理引用类型时,虽没有装箱和折箱操作,但仍需要类型转换操作。代码 _list.Add("a")不会发生装箱。

3:程序运行时的类型转换可能引发异常。运行_list[1]时,由于它是一个字符 串,要强制转换成int就会有异常。

泛型处理过程:泛型用一个通用的数据类型T来代替object,在类实例化时指 定T的类型,CLR自动编译为本地代码,并且保证数据类型安全。

泛型优点:

1:类型安全的。例如实例化了int类型的类,就不能处理string类型的数据。 上面的_list2.Add("a"),就会报错。

2:处理值类型时,无需装箱和折箱。int j=i+1;i可以直接取,并不需要折箱操 作。

3:无需类型转换,包含值类型和引用类型。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索list
, 数据类型
, 类型
, 装箱
, 处理
, 一个
泛型总结
java 泛型、c 泛型、java 泛型方法、java泛型详解、c 泛型编程,以便于您获取更多的相关知识。

时间: 2025-01-01 21:50:28

泛型相关知识的相关文章

关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料

问题描述 关于数值分析的实验程序,用c语言c++均可,需要用到数值分析课相关知识,我可以提供部分资料 解决方案 我只想说 数据分析 不应该用MATLAB更方便吗? 解决方案二: http://wenku.baidu.com/link?url=ZAScYogajXHrTTRa5xjpUPtS7OQQXZ_LfXaWNkczTtWf2MJgx0RZFUuca4iRGUcPwtr4Um4AJObpWKl8dg5WS6fZdx6lfoES8JYcsJtcdgi 解决方案三: 数值分析各种算法C语言数值分

求射频、IC相关知识解析

问题描述 求射频.IC相关知识解析 什么是射频? 射频的频率范围是什么? 射频与无线,wlan,WiFi,蓝牙关系是什么? 移动通信用的都是射频么?手机的GSM,CDMA等也是用的射频技术么? IC/ID 卡用的射频技术么?卡中的线圈是什么作用?有源IC卡有线圈么,它是怎样应用射频技术达到的? 另外射频技术除射频识别外还有哪些方面的应用? 解决方案 这个问题建议你将问题一个一个的去 Google 等查找一下,都会有答案的.

讲解Python中面向对象编程的相关知识

  这篇文章主要介绍了深入讲解Python中面向对象编程的相关知识,是Python入门学习中的基础知识,需要的朋友可以参考下 Python从第一天开始就是面向对象的语言.正因为如此,创建和使用类和对象是非常地容易.本章将帮助您在使用Python面向对象编程的技术方面所有提高. 如果没有任何以往面向对象(OO)的编程的经验,那么可能要了解一些基本的入门课程就可以了,或者至少某种形式的教程,让你有了解基本概念. 但是,这里会比较少地介绍面向对象编程(OOP): OOP术语概述 类: 用户定义的原型对

repaint和reflow的相关知识

文章简介:页面重构应注意的repaint和reflow. 最近了解了下repaint和reflow的相关知识,觉得在页面重构过程中就应该考虑前端开发(js)人员对dom进行操作,能够减轻客户浏览器的鸭梨.在这里整理了一下相关资料,推荐看帖子底部的文章,如果觉得排版不够好请移步我的博客围观.这是一个讨论帖,抛砖引玉,大家说说自己工作中的经验~ 1. 什么是 repaint 和 reflow? 一个页面由两部分组成:DOM:描述该页面的结构render:描述 DOM 节点 (nodes) 在页面上如

小技巧:打印样式的相关知识

打印|技巧 今天有个朋友问我关于打印样式的问题,当时正是工作时间一时不好回答,只好在工作完成后整理,总结一下打印样式的相关知识. 先来了解一下什么叫打印样式?打印样式也就是说通过CSS指定给打印机来识别的打印时的输出样式.在HTML中链接的打印样式是:<link rel="stylesheet" rev="stylesheet" type="text/css" media="print" href="css/p

非窗口类中使用定时器的方法及相关知识的介绍

本文代码运行效果图如下: 摘 要:本文主要通过一些简单的例子,介绍了如何在Visual C++的窗口和非窗口类中使用定时器.重点介绍了如何用静态成员函数和静态数据成员在非窗口类中使用定时器,同时,又介绍了与定时器相关的知识,例如回调函数,C++类中的静态成员,以及模板类中的映射类等. 关键字 C++ 类 定时器 静态函数 静态成员函数 静态数据成员 回调函数 映射类 摘 要:This page introduce how to use timer in window class and none

计算机网络与路由器故障诊断的相关知识

路由器故障诊断是一门综合性技术,涉及网络技术的各个面.下面,我们就来简单回顾一下网络和路由器的基本概念. 一.计算机网络 计算机网络的发展,导致网络之间各种形式的连接.计算机网络按其计算机分布范围通常被分为局域网和广域网.广域网覆盖地理范围较大,如校园.城市之间.乃至全球;局域网覆盖地理范围较小,一般在数米到数十公里之间. 计算机网络是由计算机集合加通信设施组成的系统,即利用各种通信手段,把地理上分散的计算机连在一起,达到相互通信而且共享软件.硬件和数据等资源的系统. 二.因特网 采用统一协议实

Go语言中的Interface相关知识

一件作品的诞生,通常是一个设计师独立完成的.因为这样,一件建筑也好,画作或者音乐舞蹈也好,才能真实反映出 其个性.而正是这种不同于其他同类的独特一面,正是这种发自创造者的灵光一现.但又不会背离创作目的和原始架构的新 颖实用之处,才使得创新尤为难得. Go语言的诞生,是三个有很强个性的设计师共同完成的.Go语言的定位,就象 三维坐标系中的一个点,在强类型.动态和并发这三个特性维度上,分别代表了Ken.Robert和Rob三人的创造思维的投影. 当然,这样描述不仅是为了表达Go语言有这三个特性,也是

CentOS6.3启动的相关知识详解

  CentOS6.3启动的相关知识详解          CentOs 6.3启动之前按E键,再按E,进行入GNU GRUB页面. GNU GRUB 是一个多重操作系统启动管理器.GRUB是GRand Unified Bootloader的缩写. root(hd0,0) root指定启动时的位置,hd0电脑的第一块硬盘,后面的数字代表分区的意思,即第一个分区.整体意思就是:从第一块硬盘第一个分区启动 kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro r