集合运算

史上最全Java集合面试题

╄→尐↘猪︶ㄣ 提交于 2019-12-20 22:37:30
1、你所知道的集合类都有哪些?主要方法? 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变 大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索 引访问元素的情形。 Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素对(称作"键"和"值"), 其中每个键映射到一个值。 ArrayList/Vector List Collection HashSet/TreeSet Set HashTable Treemap/HashMap 我记的不是方法名,而是思想,我知道它们都有增删改查的方法,但这些方法的具体名称, 我记得不是很清楚,对于 set,大概的方法是 add,remove, contains;对于 map,大概的方 法就是 put,remove,contains 等,因为,我只要在 eclispe 下按点操作符,很自然的这些方 法就出来了。我记住的一些思想就是 List 类会有 get(int index)这样的方法,因为它可以按 顺序取元素,而 set 类中没有 get(int index)这样的方法。List 和 set 都可以迭代出所有元素, 迭代时先要得到一个 iterator 对象,所以,set 和 list 类都有一个 iterator 方法,用于返回那

node异步转同步,KO 恶魔金字塔

前提是你 提交于 2019-12-20 14:51:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 Nodejs框架类库很多,功能相近的框架,本来只打算学一种写一种。之前写过流程控制框架 windjs文章 ,本来是想着要支持一下“国人框架”。无奈啊,作者竟然放弃了维护,国人真的不靠谱啊! “流程控制”本来是件比较简单的事,但是由于Nodejs的异步架构的实现方法,对于需要同步的业务逻辑,实现起来就比较麻烦。嵌套3-4层,代码就会变得的支离破碎了! 今天就遇到了一个业务逻辑,连续对数据库操作,前后有依赖。让我们看看Async是如何解决问题的。 不用不知道,一用真强大!! 目录 Async介绍 Async安装 Async函数介绍 async_demo使用介绍 场景:对数据库的连续操作 async_demo我的分支 1. Async介绍 Async是一个流程控制工具包,提供了直接而强大的异步功能。基于Javascript为Node.js设计,同时也可以直接在浏览器中使用。 Async提供了大约20个函数,包括常用的 map, reduce, filter, forEach 等,异步流程控制模式包括,串行(series),并行(parallel),瀑布(waterfall)等。 项目地址: https://github.com/caolan/async 2. Async安装 我的系统环境 win7 64bit

列表,元祖,字典,集合类型内置方法

泄露秘密 提交于 2019-12-19 07:55:09
一 列表类型内置方法 1.作用:存在多个元素 2.定义方式:[]内用逗号隔开任意数据类型的元素 3.方法 4.多个值or一个值:多个值 5.有序or无序:有序 6.可变or不可变:可变 name_list = ['jack','engo','nick'] s_list = list('sdfa') print(s_list) ['s', 'd', 'f', 'a'] 3.方法: (1)按索引取值:正向取值+反向取值,既可取也可以存 name_list = ['jack','engo','nick','amy'] print(name_list[2]) # 打印索引为2的元素 print(name_list[-1]) # 打印索引为-1的元素 nick amy (2)切片 print(name_list[1:3]) # 打印索引为1到3之间的元素 print(name_list[-2:]) # 打印最后2个元素 ['engo', 'nick'] ['nick', 'amy'] (3)len 长度 print(len(name_list)) # 获取name_list的字符串长度 4 (4)in 和 not in print('jack' in name_list) # 'jack'在name_list中 print('jack' not in name_list) # 'jack

java集合常见问题

别等时光非礼了梦想. 提交于 2019-12-19 00:09:29
Java集合 常见的集合问题 HashMap与HashTable的区别 HashMap的put方法的具体流程? HashMap 解决哈希冲突 什么是哈希? 什么是哈希冲突? HashMap为什么不直接使用hashCode()处理后的哈希值直接作为table的下标? HashMap在JDK1.7和JDK1.8中有哪些不同? 为什么HashMap中String、Integer这样的包装类适合作为K? ConcurrentHashMap和Hashtable的区别? Java集合的快速失败机制 “fail-fast” ArrayList 和 Vector 的区别? ArrayList和LinkedList的区别? Array 和 ArrayList 有什么区别?什么时候该应 Array 而不是 ArrayList 呢? HashSet是如何保证数据不可重复的? BlockingQueue是什么? 转自 https://zhuanlan.zhihu.com/p/82714518 常见的集合问题 Map 接口和 Collection 接口是所有集合框架的父接口: Collection 接口的子接口包括: Set 接口和 List 接口 Map 接口的实现类主要有: HashMap 、 TreeMap 、 Hashtable 、 ConcurrentHashMap 以及 Properties 等

Python容器之集合

十年热恋 提交于 2019-12-18 12:47:10
一、集合的定义 集合是由不重复元素组成的无序的集。 它的基本用法包括成员检测和消除重复元素。 集合对象也支持像 联合,交集,差集,对称差分等数学运算。 二、集合的创建 1、创建一个空集合 >> > _set = set ( ) >> > _set set ( ) 2、创建一个非空集合 从下面代码可以体现集合会消除重复元素. >> > basket = { 'apple' , 'orange' , 'apple' , 'pear' , 'orange' , 'banana' } >> > basket { 'orange' , 'apple' , 'pear' , 'banana' } 三、集合的用法 四、深入了解集合 集合也支持类似 “列表推导式”. 例如 >> > a = { x for x in 'abracadabra' if x not in 'abc' } >> > a { 'r' , 'd' } 来源: CSDN 作者: MichaelZhu 链接: https://blog.csdn.net/a5685263/article/details/103594439

06 列表、字典、集合、元祖的内置方法

佐手、 提交于 2019-12-18 06:21:28
1.列表内置方法l=[1,2,3,4,5,6,7] res = l.clear() print(res)#None 因此.clear方法没有返回值 print(l)#[] 现在列表为空了 将列表反转reserse() l = [1,2,1,3,4,5,6,7] l.reverse() print(l)#[7, 6, 5, 4, 3, 1, 2, 1] sort()排序l1 = [43,6,1,7,99] l1.sort(reverse=False) # 可以通过指定参数来修改默认的拍讯规则(降序) print(l1) 总结:列表类型:能存多个值;有序的;可变类型 队列:先进先出 l=[] l.append('1') l.append('2') l.append('3') print(l) #['1', '2', '3'] print(l.pop(0)) print(l.pop(0)) print(l.pop(0)) #1,2,3 堆栈:先进后出 l.append('1') l.append('2') l.append('3') print(l) #['1', '2', '3'] print(l.pop()) print(l.pop()) print(l.pop()) #3,2,1 2.元祖 2.1作用:存储多个值,元素与元素之间逗号隔开,元素可以是任意类型,元祖不能被修改 2

集合运算

最后都变了- 提交于 2019-12-18 04:34:49
给出两个整数集合A、B,求出他们的交集、并集以及B在A中的余集。 输入格式   第一行为一个整数n,表示集合A中的元素个数。   第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素。   第三行为一个整数m,表示集合B中的元素个数。   第四行有m个互不相同的用空格隔开的整数,表示集合B中的元素。   集合中的所有元素均为int范围内的整数,n、m<=1000。 输出格式   第一行按从小到大的顺序输出A、B交集中的所有元素。   第二行按从小到大的顺序输出A、B并集中的所有元素。   第三行按从小到大的顺序输出B在A中的余集中的所有元素。 样例输入 5 1 2 3 4 5 5 2 4 6 8 10 样例输出 2 4 1 2 3 4 5 6 8 10 1 3 5 样例输入 4 1 2 3 4 3 5 6 7 样例输出 1 2 3 4 5 6 7 1 2 3 4 思路 先对输入进来的数组进行排序; 交集:在排好序的两个数组a[],b[]中,做循环,寻找两个数组当中相等的两个数,然后将相等的数输出。因为是排好序的,可以第一个到最后一个数比较,若a[i]=b[j]则输出a[i],若a[i]<b[j] 则i++,反之则j++。 并集:创建一个新的数组用来存放a[]和b[]的并集。在排号序的a[],b[]两个数组中做循环,若a[i]=b[j],则将a[i]存进c[]中;若a[i]>b

数据类型之集合 set &运算关系

旧巷老猫 提交于 2019-12-18 01:20:54
1.集合 set 用途:关系运算、 去重 定义:{ }内用逗号分隔开的多个元素,每个元素都必需是不可变的类型 强调; 1.集合类元素都必需是不可变类型 2.集合内的元素是无序的 , 所以没有索引 3.集合内的元素不能重复 sed={1,2,‘a’} print(sed={1,2,{“a”:1}}) 直接报错 s={1,'a','hello',(1,2,3),4} for item in s: print(item) 每次循环结果顺序错乱 s={(1,2,3),(1,2,3),'a','b','a'} print(s) 自动删除重复的元素 s=set('hello') print(s) 顺序错乱 单纯的用集合去重,需要注意的问题是 1 去重的目标所包含的值必须都为不可变类型 2、去重的结果会打乱原来的顺序 常用操作+内置的方法 s1={1,2,3,4,5} s1.add(6) #集合增加元素 print(s1) 1.长度 len 2.循环 for 3.判断 in 和not in 4. 并集 | print(pythoners | linuxers) 显示两者索引元素,去除重复的元素 print(pythoners.union(linuxers)) 5.交集 & print(pythoners & linuxers) 显示相同的元素 print(pythoners

java基础知识总结

谁说胖子不能爱 提交于 2019-12-17 11:57:15
java在安卓的开发中是非常重要的,所以今天我总结了一下java的基础知识,当然,还有一些没有总结完,例如网络编程,io流等,将会在下一篇博文中写出。 概述 javac :负责的是编译的部分 java :负责运行的部分.会启动 jvm.加载运行时所需的类库,并对 class 文件进行执行 语法规则 数据类型 1 1 ): 基本数据类型:byte(1个字节)、short(2)、int(4)、long(8)、float(4)、double(8)、char(2)、boolean。 1个字节占8位 2 2 ): 引用数据 类型: 数组、类、接口。 运算符 + - / % %:任何整数模 2 不是 0 就是 1,所以只要改变被模数就可以实现开关运算 &: 只有两边都为 true 结果是 true。否则就是 false。 |:只要两边都为 false 结果是 false,否则就是 true & 和 && 区别: & :无论左边结果是什么,右边都参与运算。 &&: 短路与,如果左边为 false,那么右边不参数与运算。 | 和 || 区别:|:两边都运算。 || : 短路或,如果左边为 true,那么右边不参与运算。 ++X(–X)表示在使用x之前,先使x的值增(减)1 语句 If switch do while while for 当判断固定个数的值的时候,建议使用 switch,效率相对较高

[Java复习] 集合框架 Collection

╄→гoц情女王★ 提交于 2019-12-17 08:36:15
Q1 Collection java的集合以及集合之间的继承关系? 数组和链表的区别? 固定长度,连续内存,不能扩展,随机访问快,插入删除慢。链表相反 List, Set, Map的区别? List,Set继承Collection接口 List可以放重复数据,Set不能,Map是k-v对 List和Map的实现方式以及存储方式? ArrayList: 底层动态数组。随机访问快,增删慢,线程不安全。 扩容导致数组复制,批量删除会导致找两个集合交集,效率低。 LinkedList: 底层链表(双向列表)。增删快,查找慢,线程不安全。 遍历: 1.普通for循环,元素越多后面越慢 2.迭代器:每次访问,用游标记录当前位置 根据下标获取node,会根据index处于前半段还是后半段进行折半,提升效率。 HashMap: 散列表, 数组+链表+红黑树(JDK1.8) 默认16, 扩容2的幂 Q2 List ArrayList实现原理? 动态数组,默认10,扩容grow(minCapacity),增加到1.5倍 ArrayList和LinkedList的区别,以及应用场景? 1.动态数组和双向队列链表。 2.ArrayList( 实现了RandomAccess接口 )用for循环遍历优于迭代器,LinkedList则相反。 3.ArrayList在数组任意位置插入,或导致该位置后面元素重新排列