泛型

Day12-函数式接口

本秂侑毒 提交于 2020-02-05 21:31:48
第一章 函数式接口 1.1 概念 在java中指: 有且只有一个抽象方法的接口 ,当然接口中可以包含其他的方法(默认,静态,私有) 语法糖 指更加方便,单元里不变的代码语法。如for-each语法的底层仍是迭代器。Lambda表达式是匿名内部类的语法糖,但实现原理不同。 1.2 @FunctionalInterface注解 作用:检测接口是否为函数式接口 1.3 使用 作为 参数 或 返回值类型 package day12 . demo01 . FunctionalInterface ; /* 函数式接口的使用:一般可以作为方法的参数和返回值类型 */ public class Demo { //定义一个方法,参数使用函数式接口MyFunctionalInterface public static void show ( MyFunctionalInterface myInter ) { myInter . method ( ) ; } public static void main ( String [ ] args ) { //调用show方法,方法的参数是一个接口,所以可以传递接口的实现类对象 show ( new MyFunctionalInterfaceImpl ( ) ) ; //调用show方法,方法的参数是一个接口,所以我们可以传递接口的匿名内部类 show (

.NET工程师必须掌握的知识点

风格不统一 提交于 2020-02-05 21:00:45
Microsoft SQL Server 数据库 一、创建和维护数据库 1、数据库   SQL Server 数据库的组成部分?(参见联机丛书)   如何保证数据库的完整性、安全性、并发性?   数据库设计创建步骤?(参见联机丛书 - 创建数据库计划)   数据库设计考虑的事项?(参见联机丛书) 2、SQL Server 表   设计表时应注意哪些?   如何创建和使用约束、默认值和空值?   数据完整性分类有哪些?并且它们分别包括哪些约束?   约束有哪些?语法?   如何添加、修改和删除列? 在哪些情况下不可删除列?   创建和修改表 3、SQL Server 索引   索引的概念   索引的体系结构   索引的特性   索引的优点   索引的缺点   索引语法结构   主键、约束和索引   索引创建基本准则   索引的实际应用   重建索引? 4、SQL Server 视图   http://hi.baidu.com/ztf704/blog/item/9274cefc64a93ffffc037fb4.html   视图概念   功能特性   视图的几大优点   在创建视图前请考虑则   索引视图   索引视图必须满足下列要求   分区视图   可更新分区视图   可更新的分区视图规则   可更新的分区视图数据修改规则   分布式分区视图规则   视图使用时机 5、SQL

day13_Collection、泛型

旧时模样 提交于 2020-02-05 01:54:38
Collection集合 集合概述 在前面基础班我们已经学习过并使用过集合ArrayList ,那么集合到底是什么呢? 集合: 集合是java中提供的一种容器,可以用来存储多个数据。 集合和数组的区别 数组的长度是固定的。集合的长度是可变的。 数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。在开发中一般当对象多的时候,使用集合进行存储。 学习集合的目标 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 学习集合的方式 学习顶层: 学习顶层的接口/抽象类共性的方法,所有的子类都可以使用 使用底层: 顶层不是抽象类就是接口,无法创建对象使用。我们要使用底层的实现类来创建对象使用。 集合框架 JAVASE提供了满足各种需求的API,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。集合按照其存储结构可以分为两大类,分别是单列集合java.util.Collection 和双列集合 java.util.Map。Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List 和 java.util.Set 。其中, List 的特点是元素有序、元素可重复丶有索引可以使用普通for循环遍历。

泛型总结

假装没事ソ 提交于 2020-02-05 00:33:35
泛型 概述:泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性 1.案例: (1)首先,我们来实现一个函数 createArray,它可以创建一个指定长度的数组,同时将每一项都填充一个默认值: function createArray(length: number, value: any): Array<any> { let result = []; for (let i = 0; i < length; i++) { result[i] = value; } return result; } createArray(3, 'x'); // ['x', 'x', 'x'] (2)使数组中每一项都应该是输入的 value 的类型 function createArray<T>(length: number, value: T): Array<T> { let result: T[] = []; for (let i = 0; i < length; i++) { result[i] = value; } return result; } createArray<string>(3, 'x'); // ['x', 'x', 'x'] 注 :在函数名后添加了 ,其中 T 用来指代任意输入的类型,在后面的输入 value: T

java 泛型(转)

不问归期 提交于 2020-02-05 00:08:47
假定我们有这样一个需求:写一个排序方法,能够对整型数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现? 答案是可以使用 Java 泛型。 使用 Java 泛型的概念,我们可以写一个泛型方法来对一个对象数组排序。然后,调用该泛型方法来对整型数组、浮点数数组、字符串数组等进行排序。 参考资料: java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一 Java 泛型 详解Java泛型及其应用 泛型的使用 泛型类 泛型接口 泛型方法 1、泛形要求能包容的是对象类型,而基本类型在java里不属于对象。 但是基本类型都有其包装类型,也就是对象类型: int->Integer long->Long … 2、java, 泛型问题,就是<>里面可以填写哪些类型? 例如:想放int的话要写integer,不能光一个int的,int 是基本数据类型,Integer是其包装类,注意是一个类,泛型也是要写个类的,所以要用integer。 1.1泛型类 泛型类型用于类的定义中,被称为泛型类。通过泛型可以完成对一组类的操作对外开放相同的接口。最典型的就是各种容器类,如:List、Set、Map。 泛型类的最基本写法(这么看可能会有点晕,会在下面的例子中详解): class 类名称 < 泛型标识:可以随便写任意标识号,标识指定的泛型的类型 > { private 泛型标识 /*(成员变量类型)*/

C#中List与IList的区别

大城市里の小女人 提交于 2020-02-04 08:19:40
C#中 List 与 IList 的区别 2009-11-15 14:19 List <T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。 IList <T>接口:表示可按照索引单独访问的一组对象。 下面谈谈它们之间的区别: 首先, List <T>是一个类, IList <T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。 具体来说, IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用 IList <T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候 IList <T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、 IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 List <>是泛型类,它已经实现了 IList <>定义的那些方法 IList <Class1> IList 11 =new List <Class1>(); List <Class1> List 11 =new

C#中List与IList的区别

六月ゝ 毕业季﹏ 提交于 2020-02-04 08:09:39
List<T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。 IList<T>接口:表示可按照索引单独访问的一组对象。 下面谈谈它们之间的区别: 首先,List<T>是一个类,IList<T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。 具体来说,IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 List <>是泛型类,它已经实现了IList <>定义的那些方法 IList <Class1> IList11 =new List <Class1>(); List <Class1> List11 =new List <Class1>(); 这两行代码,从操作上来看,实际上都是创建了一个List<Class1

探讨Ilist<>与List<>

本小妞迷上赌 提交于 2020-02-04 08:01:11
原文: 探讨Ilist<>与List<> 首先要了解一点的是关于接口的基础知识: 接口不能直接实例化 但是接口派生出来的抽象类可以实例化 所有派生出来的抽象类都可以强制转换成接口的实例 第三条我解释一下:比如,IList <Class> IList11 =new List <Class>(); 也就是接口派生出来的抽象类可以转换为接口的实例,这也是常说的里氏替换原则(子类对象可以代替父类对象,但其父类对象不能代替子类对象) 首先,List<T>是一个类,IList<T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。 具体来说,IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 List <>是泛型类,它已经实现了IList <>定义的那些方法 IList

Ilist<>与List<>的区别

时光怂恿深爱的人放手 提交于 2020-02-04 07:59:30
首先要了解一点的是关于接口的基础知识: 接口不能直接实例化 但是接口派生出来的抽象类可以实例化 所有派生出来的抽象类都可以强制转换成接口的实例 第三条我解释一下:比如,IList <Class> IList11 =new List <Class>(); 也就是接口派生出来的抽象类可以转换为接口的实例,这也是常说的里氏替换原则(子类对象可以代替父类对象,但其父类对象不能代替子类对象) 首先,List<T>是一个类,IList<T>是一个接口。接口和类的区别是本质的,类是负责功能的实现,而接口则是负责功能的定义。所以它们的区别本质上也就是类和接口的区别。 具体来说,IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,那么使用IList<T>完全可以胜任。但是更多的时候,我们要对集合数据进行处理,从中筛选数据或者排序。这个时候IList<T>就爱莫能助了。 1、当你只想使用接口的方法时,ILis<>这种方式比较好.他不获取实现这个接口的类的其他方法和字段,有效的节省空间. 2、IList <>是个接口,定义了一些操作方法这些方法要你自己去实现 List <>是泛型类,它已经实现了IList <>定义的那些方法 IList <Class1> IList11

java泛型通配符&lt? extends T&gt和&lt? super T&gt的理解

无人久伴 提交于 2020-02-04 07:07:10
1. 什么是泛型通配? 当使用泛型类或者泛型接口时候,传递数据过程中, 泛型类型不确定 , 则可以通过<?> 来匹配。一旦使用通配符,只能使用Object中共性方法。 2. 使用通配符<?>示例 public class GenericDemo { public static void main ( String [ ] args ) { ArrayList < Integer > list1 = new ArrayList < > ( ) ; list1 . add ( 1 ) ; list1 . add ( 2 ) ; ArrayList < String > list2 = new ArrayList < > ( ) ; list2 . add ( "a" ) ; list2 . add ( "b" ) ; // 调用输出函数,分别想打印结果 printArray ( list1 ) ; printArray ( list2 ) ; } /* 当传入Integer类型,list2将会报错,当传入String类型,list1将会报错 此时,很多会填入Object泛型,但是对不起,泛型没有继承概念 因此我们使用通配符? */ public static void printArray ( ArrayList < ? > list ) { Iterator < ? >