1.前言 python中的集合set与列表类似,它们最大的区别是集合内不允许出现重复元素,如果在定义时包含重复元素,会自动去重。 集合是无序的,集合中的元素必须是不可变类型。集合可以作为字典的key。 2.集合的定义 集合用一对花括号{}定义 3.集合的常见操作 add(x) 往集合的尾部添加元素x ...
分类:
编程语言 时间:
2018-09-08 22:37:15
阅读次数:
199
1.前言 字典是python中唯一的映射类型,采用键值对(key value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,因此,字典的key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。 字典的键必须是唯一的,但值则不必。 ...
分类:
编程语言 时间:
2018-09-08 22:36:23
阅读次数:
179
Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的。 对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收)。 不可变类型 ...
分类:
编程语言 时间:
2018-09-06 16:28:16
阅读次数:
200
用户自定义类 注意在所有方法中都不要命名与实例域同名的变量 final修饰的大都是基本类型或不可变类的域, 可变类用final休息容易造成混乱 静态类和方法 final修饰的域可以是public的; NumberFormat使用工厂方法生成实例; 不用构造函数实例化的原因是(1)无法命名构造器,对于 ...
分类:
其他好文 时间:
2018-09-03 19:29:27
阅读次数:
130
1、三个类之间的关系 他们都是通过字符数组来实现的,继承关系 String:字符串常量,不可变类 StringBuffer:字符串变量,可变类,线程安全 StringBuilder:字符串变量,可变类,线程不安全 2、执行速度 String < StringBuffer < StringBuildr ...
分类:
其他好文 时间:
2018-09-03 17:14:31
阅读次数:
156
集合中的方法:利用set()创建的集合是可变集合,它的类型是不可哈希(unhashable)的。对于这句话的理解是,set()创建的集合,整体上是可变的,可以增、删;但集合中的元素(个体)是不可变(hashable)的,不能被修改,且集合中的元素不能是列表、字典等可变类型的对象。 add()方法:向 ...
分类:
其他好文 时间:
2018-09-03 12:07:56
阅读次数:
230
String不是基本数据类型,String和8种包装类型是不可变类。String和8种基本数据类型采用值传递。 0.不可变类的设计原则 如上代码所示,可以观察到以下设计细节: 这都符合上面总结的不变类型的特性,也保证了String类型是不可变的类。 例如: 1.创建过程与字符串拼接过程 1.创建过程 ...
分类:
其他好文 时间:
2018-09-03 02:23:22
阅读次数:
176
一个由try...catch...finally引出的思考,在前面已经初步了解过不可变与可变、值传递与引用传递,在这里再次深入理解。 1.先看下面一个try..catch..finally的例子: Person.java 结果: s3Person [age=0, name=finally] 总结: ...
分类:
编程语言 时间:
2018-09-01 00:45:36
阅读次数:
191
在python多线程开发中,全局变量是多个线程共享的数据,局部变量是各自线程的,非共享的。 如下几种写法都是可以的: 第一种:将列表当成参数传递给线程 第二种:不传递,直接用 结果都一样: 对于参数是字符串,数字这种不可变类型的变量 ,改变变量的值的时候,要用上global,否则程序报错。 结果: ...
分类:
编程语言 时间:
2018-08-30 21:37:51
阅读次数:
186
#__author:"Feng Lin" #date: 2018/8/26 #集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希的(所以集合做不了字典的键) #集合注意记住以下几点 #1.元素去重 #2.关系测试,交集、并集、差集 set1=set({1,2... ...
分类:
编程语言 时间:
2018-08-27 01:05:35
阅读次数:
212