object

c#的SortedList使用方法

喜你入骨 提交于 2020-03-09 23:36:16
表示键/值对的集合,这些键和值按键排序并可按照键和索引访问。 SortedList最合适对一列健/值对 进行排序,在排序时,是对键进行排序,SortedList 是 Hashtable 和 Array 的混合。当使用 Item 索引器属性按照元素的键访问元素时,其行为类似于 Hashtable。当使用 GetByIndex 或 SetByIndex 按照元素的索引访问元素时,其行为类似于 Array。 SortedList 在内部维护两个数组以将数组存储到列表中;即,一个数组用于键,另一个数组用于相关联的值。每个元素都是一个可作为 DictionaryEntry 对象进行访问的键/值对。键不能为空引用(Visual Basic 中为 Nothing),但值可以。SortedList 的容量是列表可拥有的元素数。随着向 SortedList 中添加元素,容量通过重新分配按需自动增加。可通过调用 TrimToSize 或通过显式设置 Capacity 属性减少容量。SortedList 的元素将按照特定的 IComparer 实现(在创建SortedList 时指定)或按照键本身提供的 IComparable 实现并依据键来进行排序。不论在哪种情况下,SortedList 都不允许重复键。 索引顺序基于排序顺序。当添加元素时,元素将按正确的排序顺序插入 SortedList

C#之使类型参数--泛型

孤街醉人 提交于 2020-03-09 21:58:41
1 、泛型是什么 泛型的就是“通用类型”,它可以代替任何的数据类型,使类型参数化,从而达到只实现一个方法就可以操作多种数据类型的目的。 2 、为什么使用泛型 举一个比较两个数大小的例子: 以上例子实现int类型数据的大小比较是完全没有问题的,但是如果客户现在增加需求“又可以实现两个字符串大小的比较”,此时就不得不在类中再添加一个比较字符串大小的方法了: 如果客户现在还增加需求,要求实现浮点型的比较,那么工作量就更大了,不得不再次修改代码,显然这不是我们想看到的,两个方法中有大部分代码是类似的,所以微软提出了一个激动人心的特性--泛型,他使得类型可以被参数化。 where语句是类型参数的约束它用来使参数可以适用于CompareTo方法。 向泛型中加入元素的效率远比非泛型数组高,原因是非泛型rrayList的Add(Object value)方法中,参数为object类型,当把int参数i传入方法时,会发生装箱操作,从而导致性能的损失,使运行的时间变得更长。 泛型可以保证类型安全,当你向int类型数组中添加string类型的值的时候,会造成“无法从string类型转换为int类型”的错误,因为你用int类型初始化了泛型类型。 3 、泛型参数解析 1、类型参数 根据泛型类型参数是否已经提供实际类型,可分为未绑定的泛型和已构造的泛型,如果没有给泛型提供实际类型,此时的泛型成为未绑定的泛型

spring05

瘦欲@ 提交于 2020-03-09 20:51:02
title: spring05 date: 2020-03-09 19:31:42 tags:代理模式 该部分学习了动态代理。 1、概述 该部分摘抄自秦老师的博客 静态代理 可以使得我们的真实角色更加纯粹 . 不再去关注一些公共的事情 . 公共的业务由代理来完成 . 实现了业务的分工 。 公共业务发生扩展时变得更加集中和方便 . 缺点 : 类多了 , 多了代理类 , 工作量变大了 . 开发效率降低 . 动态代理 动态代理的角色和静态代理的一样 . 动态代理的代理类是动态生成的 . 静态代理的代理类是我们提前写好的 动态代理分为两类 : 一类是基于接口动态代理 , 一类是基于类的动态代理 基于接口的动态代理----JDK动态代理 基于类的动态代理--cglib 现在用的比较多的是 javasist 来生成动态代理 . 百度一下javasist 我们这里使用JDK的原生代码来实现,其余的道理都是一样的! 2、环境 接口 package com.nevesettle.dongtai; public interface Userdao { public void addUser(); public void deleteUser(); public void queryUser(); public void updateUser(); } 实现类 package com

java IO笔记(序列化与ObjectInputStream、ObjectOutputStream)

烈酒焚心 提交于 2020-03-09 19:40:41
本篇讲的内容是序列化,以及ObjectInputStream和ObjectOutputStream流。 我们知道java是基于对象编程的,我们前面在进行流传输数据时,要么是以字节传输,要么是以字符传输,如果能在流中传输对象岂不是更为方便,幸运的是java在这个方面提供了支持,序列化和反序列技术帮我我们实现了该功能。 序列化指的是将对象转换为字节序列,而反序列化就是将字节序列转换为对象了,java io中的ObjectInputStream中的readObject()方法对应着反序列化 ,ObjuectOutputStream中的writeObjext(Object object)对应着序列化,当然所序列化的对象object必须是可被序列化的。 序列化反序列化一般的应用场景分为两种,一种是将信息写入硬盘之中需要用的时候再从硬盘中还原,这样可以节省很多的操作空间,如web中的session,当并发数量很高时,可能会将一些存储到硬盘中,等需要时再还原。 那么如何能让对象可以被序列化呢,其实很简单,那就是该对象必须实现java.io.Serializable接口或者java.io.Externlizabel接口,其中Externlizable接口继承了Serializable接口。如果采用默认的序列化方式实现Serializable接口就行了,如果想自己控制序列化

request response session的常用方法

偶尔善良 提交于 2020-03-09 17:43:24
.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号 方 法 说 明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流 7 String getParameter(String name) 返回name指定参数的参数值 8 Enumeration getParameterNames() 返回可用参数名的枚举 9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 10 String getProtocol() 返回请求用的协议类型及版本号 11 String getScheme() 返回请求用的计划名,如:http

C#集合之Stack

℡╲_俬逩灬. 提交于 2020-03-09 17:09:42
1、Stack定义 System.Collections.Stack类表示对象的简单的后进先出非泛型集合。 2.优点 1、后进先出的集合。 2、Stack 能接受空引用作为有效值并且允许重复的元素 3. Stack的构造器 构造器函数 注释 Stack () 初始化 Stack 类的新实例,该实例为空并且具有默认初始容量。 Stack (ICollection) 初始化 Stack 类的新实例,该实例包含从指定集合复制的元素并且具有与所复制的元素数相同的初始容量。 Stack (Int32) 初始化 Stack 类的新实例,该实例为空并且具有指定的初始容量或默认初始容量(这两个容量中的较大者)。 4、Stack的属性 属性名 注释 Count 获取 Stack 中包含的元素数。 5. Stack的方法 方法名 注释 Void Clear () 从 Stack 中移除所有对象。 Bool Contains (object obj) 确定某元素是否在 Stack 中。 Object Clone () 创建 Stack 的浅表副本。 Void CopyTo (Array array,int index) 从指定数组索引开始将 Stack 复制到现有一维 Array 中。 Object Pop () 移除并返回位于 Stack 顶部的对象。 Void Push (object obj)

web服务版智能语音对话

谁说胖子不能爱 提交于 2020-03-09 06:51:22
在前几篇的基础上,我们有了语音识别,语音合成,智能机器人,那么我们是不是可以创建一个可以实时对象的机器人了? 当然可以! 一,web版智能对话 前提:你得会flask和websocket 1 ,创建flask项目 #!/usr/bin/env python # -*- coding:utf8 -*- import os from flask import Flask, render_template, send_file app = Flask(__name__) @app.route("/index") def index(): return render_template("index1.html") @app.route("/get_audio/<file_path>/<file_name>") def get_audio(file_path, file_name): new_file_path = os.path.join(file_path, file_name) return send_file(new_file_path) if __name__ == '__main__': app.run("127.0.0.1", 8000, debug=True) index.html:用的时候粘贴过去就行! <!DOCTYPE html> <html lang="en">

javascript学习笔记之对象

末鹿安然 提交于 2020-03-08 19:56:18
一、Object类型 1、使用new运算符创建Object var obj = new Object(); 也可以省略new关键字 var obj = Object(); 2、字面量方式创建Object var obj = { name : value } delete obj.name;//删除对象属性 //匿名对象的创建 {name : value} 内置对象 ECMA-262对内置对象的定义是:“由ECMAScript实现提供的、不依赖宿主环境的对 象,这些对象在ECMAScript程序执行之前就已经存在了。”意思就是说,开发人员不必显 示地实例化内置对象;因为它们已经实例化了。ECMA-262只定义了两个内置对象:Global 和Math。 一.Global对象 Global(全局)对象是ECMAScript中一个特别的对象,因为这个对象是不存在的。在 ECMAScript中不属于任何其他对象的属性和方法,都属于它的属性和方法。所以,事实上, 并不存在全局变量和全局函数;所有在全局作用域定义的变量和函数,都是Global对象的 属性和方法。 PS:因为ECMAScript没有定义怎么调用Global对象,所以,Global.属性或者Global. 方法()都是无效的。(Web浏览器将Global作为window对象的一部分加以实现) Global对象有一些内置的属性和方法:

ES6 之 对象的扩展

岁酱吖の 提交于 2020-03-08 17:52:45
1、Object.is() 判断俩个值是否相等 +0 不等于 -0 NaN 等于自身 console.log(Object.is('foo','foo')); // true console.log(Object.is({},{})); // false console.log(Object.is(+0,-0)); // false console.log(Object.is(NaN,NaN)); // true 2、Object.assign() Object.assign(target, source1, source2) 方法将源对象(source)的所有可枚举的属性(不包括原型上的属性)复制到目标对象上 注意: 如果只有一个参数,Object.assign()会直接返回该参数 如果对象不是对象,则会先转换为对象,然后返回 由于undefined和null无法转换为对象,会报错 如果非对象参数出现在源source对象位置,不会报错 如果在source的原型上定义方法,不会被copy 测试是否能copy不可枚举的属性: let target = { a: 1 } let source1 = { b: 2 } let source2 = { c: 3 } let a = Object.assign(target, source1, source2) // {a: 1, b: 2,

Scala的Class、Object、Trait

前提是你 提交于 2020-03-08 16:42:36
开发环境 ideaIU或ideaIC。 idea的scala插件,File-Setting-Plugins,搜索scala在线安装,或下载后离线安装Install plugin from disk。 加载scala的包,Project Structure,Global Libraries,添加scala-sdk。 基础 scala中,break和continue的实现 , 1 package com.padluo.spark.scala.basic 2 import scala.util.control.Breaks._ 3 object BreakTest { 4 def main(args: Array[String]): Unit = { 5 // break 6 breakable { 7 for (i <- 1 to 10 ) { 8 if (i == 2 ) { 9 break () 10 } 11 println(i) 12 } 13 } 14 // continue 15 for (i <- 1 to 10 ) { 16 breakable { 17 if (i == 2 ) { 18 break () 19 } 20 println(i) 21 } 22 } 23 } 24 } 0 until 10 和 0 to 10 的区别,until是0到9,相当于<