集合运算

黑马程序员——反射

孤街醉人 提交于 2020-04-08 06:46:28
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ---------- 一、概述 反射技术: 反射技术可以对类进行解剖。 二、应用场景 提供一个配置文件,来供以后实现此程序的类来扩展功能。对外提供配置文件,让后期出现的子类直接将类名字配置到配置文件中即可。该应用程序直接读取配置文件中的内容。并查找和给定名称相同的类文件。进行如下操作: 1)加载这个类。 2)创建该类的对象。 3)调用该类中的内容。 应用程序使用的类不确定时,可以通过提供配置文件,让使用者将具体的子类存储到配置文件中。然后该程序通过反射技术,对指定的类进行内容的获取。 好处:反射技术大大提高了程序的扩展性。    反射就是把Java类中的各种成分映射成相应的java类。 三、Class和class的区别 1)class:Java中的类用于描述一类事物的共性,该类事物有什么属性,没有什么属性,至于这个属性的值是什么,则由此类的实例对象确定,不同的实例对象有不同的属性值。 2)Class:指的是Java程序中的各个Java类是属于同一类事物,都是Java程序的类,这些类称为Class

使用Python操作Redis

老子叫甜甜 提交于 2020-04-06 20:06:45
使用Python操作Redis 2014年5月15日 by debugo · 8条评论 1. 安装pyredis 首先安装pip <SHELL># apt-get install python-pip ...... <SHELL># pip install --proxy=http://172.1.2.6:8080 redis Downloading redis-2.9.1.tar.gz (62kB): 62kB downloaded Running setup.py (path:/tmp/pip_build_root/redis/setup.py) egg_info for package redis ...... Successfully installed redis Cleaning up... 1 2 3 4 5 6 7 8 < SHELL > # apt-get install python-pip . . . . . . < SHELL > # pip install --proxy=http://172.1.2.6:8080 redis Downloading redis - 2.9.1.tar.gz ( 62kB ) : 62kB downloaded Running setup .py ( path : / tmp / pip_build_root /

HashCode()与equals()深入理解

自作多情 提交于 2020-04-06 19:44:26
1、hashCode()和equals()方法都是Object类提供的方法, hashCode()返回该对象的哈希码值,该值通常是一个由该对象的内部地址转换而来的int型整数,  Object的equals()方法等价于==,也就是判断两个引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元 2、要判断两个对象逻辑相等就要覆盖equals()方法,当覆盖equals()方法时建议覆盖hashCode()方法, 官方hashCode的常规协定是如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用 hashCode 方法都必须生成相同的整数结果。 3、在一些散列存储结构的集合中(Hashset,HashMap...)判断两个对象是否相等是先判断两个对象的hashCode是否相等,再判断两个对象用equals()运算是否相等 4、hashCode是为了提高在散列结构存储中查找的效率,在线性表中没有作用。 5、若两个对象equals返回true,则hashCode有必要也返回相同的int数。 6、同一对象在执行期间若已经存储在集合中,则不能修改影响hashCode值的相关信息,否则会导致内存泄露问题。 一、equals()方法 equals是Object类提供的方法之一,众所周知,每一个java类都继承自Object类

马哥博客作业第三周

混江龙づ霸主 提交于 2020-04-06 18:10:19
Ipython使用 ipython是增强的CPython,尤其是交互式体验。该项目还提供了jupyter notebook,之后分离。 帮助 ? Ipython概述和简介 help(name) 查询指定名称的帮助 obj? 列出对象的详细帮助 obj?? 如果可以,则列出更加详细的帮助 特殊变量 ipython内部提供了非常多的内建变量,或许能用到的如下 _表示第一次输出 __表示倒数第二次输出 ___表示倒数第三次输出 _dh目录历史 _oh输出历史 shell命令 使用 !command 执行shell命令 魔术方法 IPython内置的特殊方法,使用%百分号开头 %开头是line magic %%开头是cell magic,notebook的cell 集合 集合,简称集。由任何个元素构成的集体。高级语言都实现了这个非常重要的数据结构类型。在python中,它是 可变的、无序的、不重复 的元素的集合 初始化 元素性质 去重:在集合中,所有元素必须相异 无序:因为无序,所以 不可索引 可哈希:python集合中的元素必须可以hash,即元素都可以使用内建函数hash ( 目前学过的不可hash类型:list、set、byte array ) 可迭代:set中虽然元素不一样,但元素都可以迭代出来 增加 add(elem) 返回值None #注意只能一次增加一个元素,如果元素存在

Java8处理集合的优雅姿势之Stream

萝らか妹 提交于 2020-04-06 11:49:30
前言 在Java中,集合和数组是我们经常会用到的数据结构,需要经常对他们做增、删、改、查、聚合、统计、过滤等操作。相比之下,关系型数据库中也同样有这些操作,但是在Java 8之前,集合和数组的处理并不是很便捷。 不过,这一问题在Java 8中得到了改善,Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。本文就来介绍下如何使用Stream。特别说明一下,关于Stream的性能及原理不是本文的重点,如果大家感兴趣后面会出文章单独介绍。 1.Stream介绍 Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。 Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 这种风格将要处理的元素集合看作一种流,流在管道中传输,并且可以在管道的节点上进行处理,比如筛选,排序,聚合等。 Stream有以下特性及优点: 无存储。Stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。 为函数式编程而生。对Stream的任何修改都不会修改背后的数据源,比如对Stream执行过滤操作并不会删除被过滤的元素,而是会产生一个不包含被过滤元素的新Stream。 惰式执行

第四节:集合、字符串打印

余生长醉 提交于 2020-04-05 14:59:23
集合概念: 每个元素必须是不可变类型 没有重复元素 无序 可变类型:列表,字典 不可变类型:数字、字符、元组 集合之间的关系运算: intersection  求交集  & union     求并集  | diffrence    求差集  - sysmmeteric_diffrence  求交叉补集 ^ 删除元素: .discard("")删除的元素不存在的话不会报错 .remove("")删除的元素不存在的时候会报错 .pop()随机删除 创建不可变集合: name = "asda" s = frozenset(name) %格式化打印字符串: %s字符串 %d整形 %f浮点型 %.2f %% 百分比 保留两位小数 a = " asdas %f" %3.55  #打印浮点数 a = 'percent %.2f %%' % 95.1234  #打印百分比 a = "i am %(name)s age %(age)d" % {"name": "sdd", "age": 18}   #使用字典一一对应 a = "i am %(name)s age %(age)d"%( "sdd", 18)  #使用元组一一对应 a = "i am \033[32m,%(name)-30s\033[0m age" % {"name": "sdd"}  #左对齐加颜色 a = "i am \033

集合 copy

六眼飞鱼酱① 提交于 2020-04-01 01:13:46
#集合的创建 # set = set(["barry",1,2]) # print(set) # set1 = {1,2,3} #集合的增 # set1 = {'alex','wusir','ritian','egon','barry'} # set1.add("taibai") # # set1.update("taibai") #迭代追加 # print(set1) # 删 # set1 = {'alex','wusir','ritian','egon','barry'} # # set1.pop() #随机删 # # set1.remove("alex") #指定元素删 # # set1.clear() #清空集合 # del set1 #删除集合 # print(set1) #交集 # set1 = {1,2,3,4,5} # set2 = {4,5,6,7,8} # print(set1 & set2) # {4, 5} # print(set1.intersection(set2)) # {4, 5} #并集 # set1 = {1,2,3,4,5} # set2 = {4,5,6,7,8} # print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7} # print(set2.union(set1)) # {1, 2, 3, 4, 5, 6

Python基础语法

巧了我就是萌 提交于 2020-03-31 03:47:44
Python编码规范 类名首字母大写,对象名小写。 类的属性与方法名以对象作为前缀。 类的私有变量、私有方法以两个下划线作为前缀。 函数名通常采用小写,并用下划线或者单词首字母大写增强可读性。 Python的注释以 # 开头,后面的文字直到行尾都算注释 Python的编码通过缩进表示每行代码之间的层次关系。如下 x=1 if x == 1: print"x=",x #代码缩进 else: print"x=",x #代码缩进 x = x + 1 #代码缩进 print"x=",x Python中语句可以用 ; 结束语句,也可以省略 #下面两句语句等价 print"hello" print"hello"; 但是在同一行中有多条语句,就必须用分号隔离 #使用分号分隔语句 x = 1 ; y = 1 ; x= 1 对于一些一行代码比较长的语句。 Python支持多行写一条语句, Python使用 \ 作为多行语句连接符。 以下为两种写法 写法一只用了一对双引号, 写法二用了两对双引号,写法二比写法一的可读性强。 注 : \ 用来链接字符串时,后不能有任何代码,包括注释 print"hello \ world" print"hello "\ "world" 输出结果都为 hello world Python有的编辑器是不支持中文字符的, 用到中文需要在最顶部添加 # -*- coding:

Machine Learning 算法可视化实现2 - Apriori算法实现

╄→尐↘猪︶ㄣ 提交于 2020-03-30 04:47:22
目录 关联分析 Apriori原理 Apriori算法实现 - 频繁项集 Apriori算法实现 - 从频繁项集挖掘关联规则 一、关联分析 关联分析 是一种在大规模数据集中寻找有趣关系的任务。 这些关系可以有两种形式: 频繁项集 (frequent item sets): 经常出现在一块的物品的集合。 关联规则 (associational rules): 暗示两种物品之间可能存在很强的关系。 相关术语 关联分析(关联规则学习): 从大规模数据集中寻找物品间的隐含关系被称作 关联分析 (associati analysis) 或者 关联规则学习 (association rule learning) 。 下面是用一个 杂货店 例子来说明这两个概念,如下图所示: 频繁项集: {葡萄酒, 尿布, 豆奶} 就是一个频繁项集的例子。 关联规则: 尿布 -> 葡萄酒 就是一个关联规则。这意味着如果顾客买了尿布,那么他很可能会买葡萄酒。 那么 频繁 的定义是什么呢?怎么样才算频繁呢? 度量它们的方法有很多种,这里我们来简单的介绍下支持度和可信度。 支持度: 数据集中包含该项集的记录所占的比例。 例如上图中,{豆奶} 的支持度为 4/5。{豆奶, 尿布} 的支持度为 3/5。 可信度: 针对一条诸如 {尿布} -> {葡萄酒} 这样具体的关联规则来定义的。这条规则的 可信度 被定义为 支持度(

一些面试题,转关注的一个博客

一个人想着一个人 提交于 2020-03-29 12:13:37
腾讯面试题: tcp 三次握手的过程, accept 发生在三次握手哪个阶段? 答accept发生在三次握手之后。 第一次握手:客户端发送syn包(syn=j)到服务器。 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个ASK包(ask=k)。 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1)。 三次握手完成后,客户端和服务器就建立了tcp连接。这时可以调用accept函数获得此连接。 const 的含义及实现机制,比如: const int i, 是怎么做到 i 只可读的? const用来说明所定义的变量是只读的。 这些在编译期间完成,编译器可能使用常数直接替换掉对此变量的引用。 用 UDP 协议通讯时怎样得知目标机是否获得了数据包 可以在每个数据包中插入一个唯一的ID,比如timestamp或者递增的int。 发送方在发送数据时将此ID和发送时间记录在本地。 接收方在收到数据后将ID再发给发送方作为回应。 发送方如果收到回应,则知道接收方已经收到相应的数据包;如果在指定时间内没有收到回应,则数据包可能丢失,需要重复上面的过程重新发送一次,直到确定对方收到。 求一个论坛的在线人数,假设有一个论坛,其注册 ID 有两亿个,每个 ID 从登陆到退出会向一个日志文件中记下登陆时间和退出时间