泛型

Java自学-泛型 泛型转型

回眸只為那壹抹淺笑 提交于 2020-01-22 16:36:10
Java 中的子类泛型转型成父类泛型 步骤 1 : 对象转型 根据面向对象学习的知识,子类转父类 是一定可以成功的 package generic; import charactor.ADHero; import charactor.Hero; public class TestGeneric { public static void main(String[] args) { Hero h = new Hero(); ADHero ad = new ADHero(); //子类转父类 h = ad; } } 步骤 2 : 子类泛型转父类泛型 既然 子类对象 转 父类对象是可以成功的,那么子类泛型转父类泛型能成功吗? 如代码 hs的泛型是父类Hero adhs 的泛型是子类ADHero 那么 把adhs转换为hs能成功吗? package generic; import java.util.ArrayList; import charactor.ADHero; import charactor.Hero; public class TestGeneric { public static void main(String[] args) { ArrayList<Hero> hs =new ArrayList<>(); ArrayList<ADHero> adhs =new

一些整理的面试题(三)

不羁岁月 提交于 2020-01-22 05:48:24
文章目录 1.try-catch-finally异常捕获语句的执行流程? 2.throw和throws的区别? 3.java集合框架是什么?说出一些集合框架的优点? 4.集合框架的泛型有什么优点? 5.java集合框架的基础接口有哪些? 6.为何Map接口不继承Collection接口? 7.iterator是什么? 8.如何将字符串转换为int? 9.为什么在java中存储密码要使用char[],而不使用String? 10.如何将字符串转换成时间Date? 1.try-catch-finally异常捕获语句的执行流程? try中是可能发生异常的程序段; catch中是捕获异常后对应的异常处理方法 finally无论是否捕获异常,都会执行finally块内的内容 2.throw和throws的区别? throw用来抛出异常,在方法体内 throws用来声明方法可能会抛出什么异常,在方法名后; 3.java集合框架是什么?说出一些集合框架的优点? 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 优点: 使用核心集合类降低开发成本,而非实现我们自己的集合框架 随着使用经过严格测试的集合框架类,代码质量会得到提高 通过使用JDK附带的集合类,可以降低代码的维护成本 复用性和可操作性 4

Java语言学习总结 高级篇 ArrayList类的创建和使用

爷,独闯天下 提交于 2020-01-22 03:46:41
ArrayList类 什么是ArrayList类 ArrayList是可以实现长度可变的数组 存储在内的数据称为元素。此类提供一 些方法来操作内部存储的元素。 ArrayList 中可不断添加元素,其大小也自动增长 。 我们知道定义的数组长度是不可以改变了,而ArrayList就客服了这点,可以根据需要随时添加元素,加长长度。 JDK_API 中的 介绍如图: ArrayList的使用步骤 三步: 导包——创建——使用 导包: import java.util.ArrayList < E > < E >表示一种指定的数据类型,叫做泛型。 泛型只能是引用类型,不能是基本数据类型 E,取自Element (元素)的首字母。在出现E的地方,我们使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。 对于ArrayList来说,有一个尖括号< E >代表泛型。 泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。 注意:泛型只能是引用类型,不能是基本类型。 注意事项: 对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。 如果内容是空,得到的是空的中括号: [] 导包创建引用 示例代码: import java . util . ArrayList ; public class ArrayTestTest { public static void

008泛型(Generic)

丶灬走出姿态 提交于 2020-01-22 01:42:31
一.泛型(Generic) 目的 为解决元素存储的安全性问题,解决获取数据元素时,需要类型强转的问题。 使用 //Java 新特性 List<Integer> list = new ArrayList<>(); //在集合中使用 List<Integer> list = new ArrayList<Integer>(); Iterator<Integer> iterator = list.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } Map<String, Integer> map = new HashMap<String, Integer>(); Set<Map.Entry<String,Integer>> set = map.entrySet(); for(Map.Entry<String,Integer> s : set){ System.out.println(s.getKey() + s.getValue()); } //自定义泛型类、泛型接口、泛型方法 //1.当实例化泛型类的对象,指明泛型的类型。指明以后,对应的类中所有使用泛型的位置,都变为实例化中指定的泛型的类型 //2.如果我们自定义了泛型类,但是在实例化时没有使用,那么就默认类型是Object类的

c++的stl和泛型

◇◆丶佛笑我妖孽 提交于 2020-01-21 23:39:22
  c++是一门多范式的语言,其中就包括泛型,泛型有可以细分为泛型方法和泛型类。无处不在的stl,就是泛型最经典的应用场景。c++泛型的实现原理就是在调用时传入真正的类型。其泛型相比于java,本人感觉不太好用,定义命名时也有些冗余,先上代码。   //记住这些经典的代码,它可以让你理解语言template <typename T> T max(T a,T b){ if(a>b){ return a} else{ return b;  } } // 可以看到,虽然理论上T可以是任意类型,但是其必须支持比较操作>,c++没有对类型进行限定,但并不是传人任意类型就可以的。    来源: https://www.cnblogs.com/Robin008/p/12227168.html

Kotlin学习(7)→函数高级

给你一囗甜甜゛ 提交于 2020-01-21 18:51:27
文章目录 1、泛型函数 2、递归函数 3、函数变量 在期待着郭霖先生的**《第一行代码(第三版)》**时,意识到自己需要补充必要的Kotlin知识。现在写文章分享自己学习Kotlin基础知识的过程,争取拿到书之后能早日上手。 使用的软件是IDEA 2019,文章中如有错误或者欠缺的地方,欢迎批评指正。 (参考书为《Kotlin从零到精通Android开发》,欧阳燊著,清华大学出版社2018年4月第一版,ISBN 978-7-302-49814-8)。感谢欧阳先生的优秀教材。 文章来源于 我的简书 。 1、泛型函数 所谓泛型,就是输入参数类型预先不知道,调用的时候再指定的函数。之前遇到过这样的情况,使用 Array来声明数组类型 ,再通过 arrayOf() 进行定义,T就是输入参数类型,这样,只用写一个函数,就能够适用于多种参数类型的情况,极大地拓展了函数的适用范围。 定义泛型函数时,需要在函数名前面加 < T > ,表示以T声明的参数(包括输入参数和输出参数),并且要在函数调用时指定参数的类型。例如: 可以看到,这里定义了一个泛型函数printInfo,用于输出各种类型的数据(实际上就是变相的print)。 如果函数需要适用于所有的数据类型,那么就需要将函数指定为泛型。例如后面的系统拓展函数。 可以这样理解:我不愿意在函数声明时就指定函数中的变量或者返回值的类型

TreeView使用泛型List动态加载数据源

浪子不回头ぞ 提交于 2020-01-21 15:56:11
来源: https://blogs.msmvps.com/deborahk/populating-a-treeview-control-from-a-list/ 实体类 public class TreeViewItem { public int ID { get; set; } public int ParentID { get; set; } public string Text { get; set; } } 加载数据 List<TreeViewItem> treeViewList = new List<TreeViewItem>(); treeViewList.Add(new TreeViewItem() { ParentID = 0, ID = 1, Text = "Parent node" }); treeViewList.Add(new TreeViewItem() { ParentID = 1, ID = 2, Text = "First child node" }); treeViewList.Add(new TreeViewItem() { ParentID = 1, ID = 3, Text = "Second child node" }); treeViewList.Add(new TreeViewItem() { ParentID = 3, ID = 4,

(Java)泛型应用

百般思念 提交于 2020-01-21 12:05:57
文章目录 一、泛型的基本应用 二、使用泛型修改代码 三、泛型应用中的构造方法 四、指定多个泛型类型 一、泛型的基本应用 泛型可以解决数据类型的安全性问题,主要原理是在类声明时通过一个标识标识类中某个属性的类型或者是某个方法的返回值及参数类型 这样在类声明或实例化时只要指定好需要的类型即可。 泛型类定义 — 格式 1 : [ 访问权限 ] class 类名称 < 泛型类型标识 1 , 泛型类型标识 2 , . . . 泛型类型标识 3 > { [ 访问权限 ] 泛型类型标识 变量名称 ; [ 访问权限 ] 泛型类型标识 方法名称 ( ) { } ; [ 访问权限 ] 返回值类型声明 方法名称 ( 泛型类型标识 变量名称 ) { } ; } 泛型类定义 — 格式 2 : 类名称 < 具体类 > 对象名称 = new 类名称 < 具体类 > ( ) ; class Point < T > { //此处可以是任意的标识符号,T 是 type 的简称 private T var ; //此变量的类型由外部决定 public T getVar ( ) { //返回值的类型由外部指定 return var ; } public void setVar ( T var ) { //设置的类型由外部指定 this . var = var ; } } 这里声明使用了“”的形式

C#泛型概念的简介与使用

删除回忆录丶 提交于 2020-01-20 20:51:51
C# 泛型(Generic)通用的,标准的 定义:泛型允许我们延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。(也就是说泛型是可以与任何数据类型一起工作的类或方法) 模块内高内聚,模块间低耦合。 泛型的使用:当我们的类/方法不需要关注调用者传递的实体是什么(公共基类工具类),这个时候就可以使用泛型。 一.泛型的特性 它有助于实现代码的重用,保护类型的安全以及提高性能。 我们可以自定义:泛型接口、泛型类、泛型方法、泛型事件和泛型委托。(提高程序的整个扩展性和紧实性) 我们还可以对泛型类进行约束以访问特定的数据类型的方法。 关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。 C#泛型类在编译时,先生成中间代码IL,通用类型T只是一个占位符。在实例化类时,根据用户指定的数据类型代替T并由即时编译器(JIT)生成本地代码,这个本地代码中已经使用了实际的数据类型,等同于用实际类型写的类 性能高(防止了非泛型的频繁拆装箱),类型安全,二进制代码重用,代码的扩展。 二.泛型的限定条件 结构(l类型参数必须是值类型,可以指定除Nulllable以外的任何值类型)。 类(类型参数必须是引用类型,包括任何类,接口,委托或数组类型) new()(类型必须具有无参数的公共构造函数) <接口名称> 类型参数必须是指定的接口或实现指定的接口 /// <summary>

java基础笔试题

好久不见. 提交于 2020-01-20 20:41:41
java 基础加强 考查的知识点 : junit 测试 1. 下面 注解中, 哪项是定义一个 Junit 单元 测试的方法 () (难度 A ) A 、 @Test B 、 @Ignor C 、 @Before D 、 @After 考查的知识点 : 基础加强泛型 2. 下面哪一项不是泛型的优点 () (难度 A ) A 、 泛型对 Java 程序的 安全性 没有作用 B 、 减少 强制转换 操作 C 、 将运行时的类型转换异常转换为了编译错误 D 、 能简化带有泛型集合的遍历, 简化了代码 考查的知识点 : 基础加强枚举 3. 下面哪一个是用来声明一个枚举类 () (难度 A ) A 、 Enum B 、 Enumeration C 、 enum D 、 ENUM 考查知识点 : 基础加强泛型 7. 下面关于泛型 的定义 说法正确的是 ( ) (难度 B ) A 、可以类上定义泛型,在类上定义的泛型可以 在 非 static 的成员上 直接 使用 B 、可以类上定义泛型,在类上定义的泛型可以 在 所有的成员上使用 C 、可以在方法上定义泛型,在方法上定义的泛型只能在方法内使用 D 、可以在方法上定义泛型,定义的位置必须在方法返回值 之 前。 考查知识点 : 基础加强枚举 8. 下面关于枚举说法正确的是 ( ) (难度 B ) A 、枚举中可以有抽象方法 B 、所有的枚举 项