集合运算

Java 8 vs. Scala(二):Stream vs. Collection

旧街凉风 提交于 2020-03-07 11:36:04
【编者按】在之前文章中,我们介绍了 Java 8和Scala的Lambda表达式对比 。在本文,将进行 Hussachai Puripunpinyo Java 和 Scala 对比三部曲的第二部分,主要关注 Stream 和 Collection,本文由 OneAPM 工程师编译整理。 首先,为大家做一个简短的介绍,collection 是有限的数据集,而 stream 是数据的序列集,可以是有限的或无限的。 Streams API 是 Java 8 中新发布的 API,主要用于操作 collection 和 streaming 数据。Collections API 会改变数据集状态,而 Streams API 则不会。例如,当你调用Collections.sort(list)时,该方法会对传入的参数进行排序,而调用list.stream().sorted() 则会复制一份数据进行操作,保持原数据不变。 你可以在这里获得更多关于 API 数据流的信息 以下是笔者从 Java 8 文档中摘出的 collections 和 streams 之间的比较。强烈建议大家阅读 完整版 。 Streams 和 collections 有以下几点区别: 无存储。steam 不是存储数据元素的数据结构。而是通过计算操作管道从源头传输数据元素。 2.本质是函数。对 Stream 对象操作能得到一个结果

php操作redis

我的梦境 提交于 2020-03-07 01:02:15
**php.ini文件添加:extension=php_redis.dll 重启php, phpinfo可以看到redis则证明安装成功** php连接redis测试 <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379);//serverip port $redis->auth('mypassword');//my redis password $redis ->set( "test" , "Hello World"); echo $redis ->get( "test"); php操作redis函数封装 1 /** 2 * 如果不传入$host和$port默认读取Laravel环境变量的参数 3 * redis Set/setex封装,可直接传入数组,可设置过期时间 written:yangxingyi 4 */ 5 function RedisSet($key,$value,$expire=0,$host='',$port=''){ 6 if(!$key||!$value) return false; 7 $host = $host?$host:getenv('REDIS_HOST'); 8 $port = $port?$port:getenv('REDIS_PORT'); 9 $redis = new

代码块小数据池集合的认识

我只是一个虾纸丫 提交于 2020-03-07 00:15:08
---恢复内容开始--- 代码块小数据池 id is == id 就好比身份证号 i = 100 s = 'alex' print (id(i)) print (id(s)) == 比较的是两边的值是否相等 l1 = [1,2,3] l2 = [1,2,3] print (l1 == l2) s1 = 'alex' s2 = 'alex' print (s1 == s2) is 判断的是内存地址是否相同 l1 = [1,2,3] l2 = [1,2,3] print (id(l1)) print (id(l2)) print (l1 is l2) #id 相同,值一定相同 #值相同的,id不一定相同 代码块 代码块:我们所有的代码都需要依赖代码块执行。 一个文件就是一个代码块 交互式命令下一行就是一个代码块 两个机制:同一代码块下,有一个机制。不同的代码块下,遵循另一个机制 同一代码块下的缓存机制。 前提条件:同一代码块内。 机制内容:Python在执行同一个代码块的初始化对象的命令时,会检查是否其值是否已经存在,如果存在,会将其重用。换句话说:执行同一个代码块时,遇到初始化对象的命令时,他会将初始化的这个变量与值存储在一个字典中,在遇到新的变量时,会先在字典中查询记录,如果有同样的记录那么它会重复使用这个字典中的之前的这个值。所以在你给出的例子中,文件执行时(同一个代码块

Guava-学习

我们两清 提交于 2020-03-06 16:12:16
学习准备 源码地址:https://github.com/google/guava API地址:https://guava.dev/releases/snapshot-jre/api/docs/ 学习方式:1、根据github说明使用 。2、下载源码,研究里面的测试例子。3、查看API里面的例子。 中文地址:https://ifeve.com/google-guava/ 概念说明-github网页翻译 Guava是Google的一组核心Java库,其中包括新的集合类型(例如多图和多集),不可变的集合,图形库以及用于并发,I / O,哈希,缓存,基元,字符串等的实用程序!它广泛用于Google的大多数Java项目中,也被许多其他公司广泛使用。 JRE版本需要JDK 1.8或更高版本。 Guava的好处 标准化 - Guava库是由谷歌托管。 高效 - 可靠,快速和有效的扩展JAVA标准库 优化 - Guava库经过高度的优化。 1. 函数式编程 -增加JAVA功能和处理能力。 2. 实用程序 - 提供了经常需要在应用程序开发的许多实用程序类。 3. 验证 -提供标准的故障安全验证机制。 4. 最佳实践 - 强调最佳的做法。 包含内容 一、基本工具 二、新集合类型 三、不可变集合 四、强大的集合工具 五、函数式编程 六、字符串处理 七、并发编程 八、原生类型 九、区间 十、缓存 十一

Python内建函数

限于喜欢 提交于 2020-03-06 05:46:10
一、数学运算类 abs(x) 求绝对值 complex([real[, imag]]) 创建一个复数 divmod(a, b) 分别取商和余数 注意:整型、浮点型都可以 float([x]) 将一个字符串或数转换为浮点数。如果无参数将返回0.0 int([x[, base]]) 将一个字符转换为int类型,base表示进制 long([x[, base]]) 将一个字符转换为long类型 pow(x, y[, z]) 返回x的y次幂 range([start], stop[, step]) 产生一个序列,默认从0开始 round(x[, n]) 四舍五入 sum(iterable[, start]) 对集合求和 oct(x) 将一个数字转化为8进制 hex(x) 将整数x转换为16进制字符串 chr(i) 返回整数i对应的ASCII字符 bin(x) 将整数x转换为二进制字符串 bool([x]) 将x转换为Boolean类型 二、集合类操作 basestring() str和unicode的超类 不能直接调用,可以用作isinstance判断 format(value [, format_spec]) 格式化输出字符串 格式化的参数顺序从0开始,如“I am {0},I like {1}” unichr(i) 返回给定int类型的unicode enumerate

redis知识梳理

孤者浪人 提交于 2020-03-05 22:12:01
redis: redis的数据类型 redis支持的几种数据类型: String(字符串) Hash(哈希) List(有序可重复元素集合) Set(无序不重复元素集合) ZSet(有序不重复元素集合) String: 键和值都是字符串,存储简单字符串数据类型,一个键最大能存储512M 。 命令 功能 set key value 设置值(多次设置相同的key的value值会覆盖) get key 获取值 setnx key value 不存在则设置值 del key 删除键值 setex key 有效期时间 value 键值有效期之后自动失效 mset key1 value1 key2 value2 …keyn valuen 一次设置多个值 getset key value 一次获取多个值 incr / decr key 对一个值进行自增或自减 incrby / decrby key 步长 对一个值进行步长自增或自减 append key val 给key的value追加val的字符串 strlen key 返回key对应的字符串的长度 mget key1 key2 …keyn 一次获取多个值 Hash: Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 可以理解为:filed=对象,key=对象的属性,value

2 线性代数基础

感情迁移 提交于 2020-03-05 15:56:11
转自: https://blog.csdn.net/longxinchen_ml/article/details/51629328 1 基本概念和符号 线性代数可以对一组线性方程进行简洁地表示和运算。例如,对于这个方程组: 这里有两个方程和两个变量,如果你学过高中代数的话,你肯定知道,可以为x1 和x2找到一组唯一的解 (除非方程可以进一步简化,例如,如果第二个方程只是第一个方程的倍数形式。但是显然上面的例子不可简化,是有唯一解的)。在矩阵表达中,我们可以简洁的写作: 其中: 很快我们将会看到,咱们把方程表示成这种形式,在分析线性方程方面有很多优势(包括明显地节省空间)。 1.1 基本符号 以下是我们要使用符号: 符号 A ∈ R m×n 表示一个m行n列的矩阵,并且矩阵A中的所有元素都是实数。 符号x ∈ R n 表示一个含有n个元素的向量。通常,我们把n维向量看成是一个n行1列矩阵,即列向量。如果我们想表示一个行向量(1行 n 列矩阵),我们通常写作 x T ( x T 表示x的转置,后面会解释它的定义)。 一个向量x的第 i 个元素表示为x i : 我们用 a ij (或 A ij , A i , j ,等) 表示第 i 行第 j 列的元素: 我们用 a j 或 A : , j 表示A矩阵的第 j 列元素: 我们用 a T i 或 A i , : 表示矩阵的第i行元素:

01数据结构——绪论

拥有回忆 提交于 2020-03-05 14:26:16
一、数据结构绪论 1.1 数据结构 数据结构 是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。 1.2 基本概念和术语 数据 数据 是描述 客观事物 的符号,是计算机中可以 操作的对象 ,是能被计算机识别,并输入给计算机处理的 符号集合 。 数据不仅仅包括整形、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。 数据元素 数据元素 是组成数据的、有一定意义的 基本单位 ,在计算机中通常作为整体处理,也被称为 记录 。 比如动物类中,牛、马、羊、鸡、鸭、鹅就是其数据元素。 数据项 一个 数据元素 可以由若干 数据项 组成。数据项是数据不可分割的 最小单位 。 比如人这样的数据元素,有眼、耳、鼻、口、手、脚这些数据项,也可以有姓名、年龄、性别、出生地址、联系电话等数据项,具体哪些数据项,要根据你的系统决定。 数据对象 数据对象 是性质相同的 数据元素的集合 ,是 数据的子集 。 所谓性质相同,是指数据元素具有相同数量和类型的数据项,比如人都有姓名,性别,生日等相同的数据项。 数据结构 数据结构 是相互之间存在 一种或多种 特定关系的 数据元素的集合 。 研究数据结构的意义: 在计算机中,数据元素不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式。为编写一个好的程序

《网络攻防》- 学习心得

巧了我就是萌 提交于 2020-03-04 12:47:07
目录 冯诺依曼体系结构理解 设计思路 图灵机的理解 图灵的生平 人工智能 程序=指令+数据 组成 运行机制 图灵完备 冯诺依曼体系结构理解 当前计算机主要是基于冯诺依曼体系结构设计的,下面就简单分析一下冯诺依曼体系结构的计算机是如何工作的,首先下面的图就是冯诺依曼体系结构图。 主要由五大部件组成 1.存储器用来存放数据和程序 2.运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中 3.控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果 4.输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等 5.输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等 冯诺依曼体系结构的指令和数据均采用二进制码表示;指令和数据以同等地位存放于存储器中,均可按地址寻访;指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。 然而现在的计算机基本以存储器作为中心 但是由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器,简称CPU,把输入输出设备简称为I/O设备

python之内置函数

↘锁芯ラ 提交于 2020-03-04 07:27:26
一、数学运算类 1 abs(x) 求绝对值 2 1、参数可以是整型,也可以是复数 3 2、若参数是复数,则返回复数的模 4 complex([real[, imag]]) 创建一个复数 5 divmod(a, b) 分别取商和余数 6 注意:整型、浮点型都可以 7 float([x]) 将一个字符串或数转换为浮点数。如果无参数将返回0.0 8 int([x[, base]]) 将一个字符转换为int类型,base表示进制 9 long([x[, base]]) 将一个字符转换为long类型 10 pow(x, y[, z]) 返回x的y次幂 11 range([start], stop[, step]) 产生一个序列,默认从0开始 12 round(x[, n]) 四舍五入 13 sum(iterable[, start]) 对集合求和 14 oct(x) 将一个数字转化为8进制 15 hex(x) 将整数x转换为16进制字符串 16 chr(i) 返回整数i对应的ASCII字符 17 bin(x) 将整数x转换为二进制字符串 18 bool([x]) 将x转换为Boolean类型 View Code 二、集合类操作 1 basestring() str和unicode的超类不能直接调用,可以用作isinstance判断 2 format(value [, format_spec]