精华内容
下载资源
问答
  • 集合是无序且不重复 1、list1.add():将元素添加...2、list1.remove(3):删除集合某一个元素,如果元素不存在时,则会报错 3、list1.discard(3):删除元素,如果该元素不存在时,不会报错。 4、list1.p...

    集合是无序且不重复

    1、list1.add():将元素添加到集合中去:

       第二种添加方式::list1.update(list2):将元组,列有,字典,集合添加到另外一个集合中去

    
    
    

    2、list1.remove(3):删除集合中的某一个元素,如果元素不存在时,则会报错

    3、list1.discard(3):删除元素,如果该元素不存在时,不会报错。

    4、list1.pop():随机删除集合中的一个元素

     5、len(list1):计算集合元素的个数

     6、list1.copy():集合的拷贝:

    7、list1.clear():清空集合里面的所有元素

    =================================集合与集合之间的关系==============================================

    1、list1.union(list2):返回集合的并集

    
    
    

    2、 list1.intersection(list2):返回两个集合中相同的元素

     

    3、list1.intersection_update(list2):在原集合上修改为两个集合的相同值。(注意这个要区别于intersection()方法,intersection()这个方法是返回了一个新的集合,不会修改原来的集合,而intersection_update()这个方法会修改原来的集合

    4、isdisjoint():两个集合有相同的元素返回false,否则返回true

    5、list1.difference(list2):list1元素在list2中不存在的元素。

    6、list1.difference_update(list2):改变了list1中的元素,剔除了和list2中相同的元素。

    7、list1.symmetric_difference(list2):返回一个新的集合,这个集合的元素都是list1和list2中互不交叉的元素

    8、list1.symmetric_difference_update(list2):把两个集合不交叉的元素都写入list1中

    展开全文
  • 传统的集合运算和专门的关系运算

    千次阅读 2020-07-14 18:27:14
    传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。 设关系R和关系S具有相同目n,也就是两个关系中都有n个属性,且相应属性取自同一个域,t是元组变量,t∈R表示t是R一个元组。 (1)并(union) ...

    一、传统的集合运算
    传统的集合运算是二目运算,包括并、差、交、笛卡尔积4种运算。
    设关系R和关系S具有相同的目n,也就是两个关系中都有n个属性,且相应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。
    (1)并(union)
    关系R与关系S的并记作:在这里插入图片描述,其结果仍为n目关系,由属于R而不属于S的元组组成。
    (2)差(except)
    关系R与关系S的差记作:在这里插入图片描述,其结果仍为n目关系,由属于R而不属于S的所有元组组成
    (3)交(intersection)
    关系R与关系S的交记作:在这里插入图片描述,其结果仍为n目关系,由既属于R又属于S的元组组成,关系的交还可以用差来表示:R∩S=R-(R-S)
    (4)笛卡尔积
    笛卡尔积的元素是元组。两个分别为n目和m目的关系R和S的笛卡尔积是一个(n+m)列的元组的集合,若R有K1个元组,S有K2个元组,则关系R和关系S的笛卡尔积有K1×K2个元组,记作:在这里插入图片描述
    传统集合运算举例:在这里插入图片描述

    二、专门的关系运算
    专门的关系运算包括选择σ、投影π、连接∞、除运算÷等。
    1.选择(restriction)
    在关系R中选择满足给定条件的诸元组:
    σF (R ) = {t |t ∈ R∧F (t ) = ‘真’} F:选择条件,是一个逻辑表达式,其基本形式为:X1θY1,选择运算是从关系R中选取逻辑表达式F为真的元组,从行的角度进行运算。
    例如:查询信息系(IS系)全体学生: σSdept = ‘IS’ (Student)
    2.投影(Projection)
    从R中选择出若干属性列组成新的关系:
    πA® = { t [A]| t ∈ R } A:R 中的属性列
    投影操作主要是从列的角度进行运算,但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(为了避免重复行)。
    例如:查询学生的姓名和所在系:πSname,Sdept(Student)

    3.连接(join
    连接也称为θ连接,从两个关系的笛卡尔积中选取属性间满足一定条件的元组
    在这里插入图片描述
    A 和B:分别为R 和S 上度数相等且可比的属性组
    θ:比较运算符投影操作主要是从列的角度进行运算
    3.1等值连接
    定义:从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:
    在这里插入图片描述
    3.2自然连接
    自然连接:两个关系中进行比较的分量必须是相同的属性组,在结果中还要把重复的属性列去掉。
    在这里插入图片描述
    例如:关系R和关系S如下所示:
    在这里插入图片描述
    例如:查询选修了课程的学生学号、姓名、课程号和成绩
    在这里插入图片描述
    查询选修了课程的学生学号、姓名、课程名和成绩
    在这里插入图片描述3.3 外连接
    外连接:如果把悬浮元组也保存在结果中,而其他属性上填空值,那么这种连接就叫做外连接,记作:在这里插入图片描述
    左外连接:如果只保留左边关系R中的悬浮元组就叫做左外连接,记作:在这里插入图片描述
    右外连接:如果只保留右边关系S中的悬浮元组就叫做右外连接,记作:在这里插入图片描述
    外连接运算举例:
    在这里插入图片描述

    展开全文
  • Linux中常用命令集合与方便灵活shell 一,shell与linux的关系 1,LIUNX系统中运行特殊程序 2,在用户和内核之间充当翻译官 3,用户登录linux系统时,自动加载一个shell程序 4,Bash是Linux系统中默认...

    Linux中常用命令集合与方便灵活的shell

    一,shell与linux的关系

         1,LIUNX系统中运行的一种特殊程序
         2,在用户和内核之间充当翻译官
         3,用户登录linux系统时,自动加载一个shell程序
         4,Bash是Linux系统中默认使用的Shell程序
           shell文件位于/bin/bash 下
    

    两者之间关系如图所示:

    在这里插入图片描述


    二,xshell常用的种类

    常用的linux有以下七种

    • bash :大多数linux默认使用的shell,所包含的功能几乎可以涵盖shell所具有的功能
    • csh :使用的是类C语法,其内部命令有52个,较为庞大,并已被/bin/tcsh取代
    • tcsh :语法与Brourne相同,同时具备了C shell的易用特点
    • ksh :是csh的增强版,与C shell 完全兼容
    • sh :是一个快捷方式,已经被/bin/bash所取代
    • nologin :指用户不能登录
    • zsh :目前Linux里面最庞大的一种shell,他有84个内部命令,使用起来较为复杂,一般情况下,不会使用

    常用的bash路径命令为:

    [root@server1 ~]# which bash /找命令的路径
    /usr/bin/bash   /  
    
    

    三,linux命令的种类

    Linux命令分为两种,为:

    • 内部命令
    • 外部命令
    内部命令 外部命令
    集成于shell解释器内部的一种特殊命令也称为内建(built-in指令) Linux系统中能够完成特定的脚本文件或二进制程序
    属于shell的一部分 属于解释器程序之外的命令
    没有单独对应的系统文件 每个外部命令对应了额系统中的一个文件
    自动载入内存,可以直接使用 必须知道其对应的文件位置,由shell加载后才能执行

    四,Linux命令行格式

    • 通用的命令行使用格式 :命令字 {选项} {参数}

      • 命令字

      • 选项:+ 短格式选项: 使用“-”符号引导
        + 长格式选项:使用“–”符号引导

      • 参数 + 命令字的处理对象
        + 可以是文件名,目录(路径)名或用户名等内容
        + 个数可以是零到多个

      • 例如: ls -l /root 查看 root , ls --help 查看命令解释

    [root@server1 bin]# ls -l /root  / 查看root
    总用量 12
    -rw-------. 1 root root 2959 8月   9 20:18 anaconda-ks.cfg
    -rw-r--r--. 1 root root 2963 8月   9 20:20 initial-setup-ks.cfg
    -rw-------. 1 root root 2054 8月   9 20:18 original-ks.cfg
    drwxr-xr-x  2 root root    6 8月  10 08:22 公共
    drwxr-xr-x  2 root root    6 8月  10 08:22 模板
    drwxr-xr-x  2 root root    6 8月  10 08:22 视频
    drwxr-xr-x  2 root root    6 8月  10 08:22 图片
    drwxr-xr-x  2 root root    6 8月  10 08:22 文档
    drwxr-xr-x  2 root root    6 8月  10 08:22 下载
    drwxr-xr-x  2 root root    6 8月  10 08:22 音乐
    drwxr-xr-x  2 root root    6 8月  10 08:22 桌面
    [root@server1 bin]# 
    

    注意:命令区分大小写

    五,编辑命令行

    编辑命令行的辅佐操作有以下几种快捷方式

    • Tab 键:自动补齐
    • 反斜杠\:强制换行
    • Ctrl+U:清空至行首
    • Ctrl+K: 清空至行尾
    • Ctrl+L : 清屏
    • Ctrl+C: 取消本次命令编辑

    六,获得命令帮助的方法

    • 内部命令 help :查看shell内部命令的帮助信息
      • 命令的“–help”选项 :适用于大多数Linux外部命令
      • 使用man命令阅读手册页
        例如:在这里插入图片描述

    七, 查看当前工作目录-pwd

    • 显示用户当前所在的工作目录位置
      例如:
    [root@server1 bin]# pwd
    /bin
    [root@server1 bin]# 
    
    

    八,切换工作目录-cd

    • 将用户的工作目录更改到其他位置
    格式 说明
    cd目标位置 切换到目标位置
    cd ~ / cd 若不指定目标位置,切换到当前用户的宿主目录
    cd - 切换到上一次执行cd命令之前所在的目录
    • 绝对路径;完整路径(从根目录开始的路径)
    • 相对路径:从当前路径出发到达目标路径
      在这里插入图片描述

    九,列表显示目录内容-ls

    • 显示目录中内容,包括子目录和文件相关属性信息
      ls {选项} {文件或目录…}
    • 常用选项
      -l -a (显示所有文件) -A -d -h -R (递归显示所有子文件) -color
    • 结合通配符
      ?:匹配文件名中的一个未知字符
      * : 匹配文件名中的任意多个字符
      例如·:
    [root@server1 ~]# ls -ln
    总用量 16
    -rw-r--r--   1 0 0    0 8月  12 18:44 abc.txt
    -rw-r--r--   1 0 0    0 8月  12 18:42 aber.txt
    dr-xr-xr-x   5 0 0 4096 8月  10 05:00 boot
    drwxr-xr-x 137 0 0 8192 8月  10 08:20 etc
    drwxr-xr-x  21 0 0  296 8月   9 20:18 var
    drwxr-xr-x   2 0 0    6 8月  10 08:22 公共
    drwxr-xr-x   2 0 0    6 8月  10 08:22 模板
    drwxr-xr-x   2 0 0    6 8月  10 08:22 视频
    drwxr-xr-x   2 0 0    6 8月  10 08:22 图片
    drwxr-xr-x   2 0 0    6 8月  10 08:22 文档
    drwxr-xr-x   2 0 0    6 8月  10 08:22 下载
    drwxr-xr-x   2 0 0    6 8月  10 08:22 音乐
    drwxr-xr-x   2 0 0    6 8月  10 08:22 桌面
    [root@server1 ~]# rm ab?.txt    //?删除只能代替一个字母
    rm:是否删除普通空文件 "abc.txt"?y
    [root@server1 ~]# rm a*.txt
    rm:是否删除普通空文件 "aber.txt"?y  //*表示删除以a开头的文件,后面可代替一长串字符
    [root@server1 ~]# 
    
    

    十,设置别名-alias

    • 通过别名机制简化常用的,比较长的命令
      格式: alias 命令别名 = 命令文件名
      例如: 将文件12345678 的别名设置为 123
    [root@server1 ~]# ls -ln
    总用量 16
    drwxr-xr-x   2 0 0    6 8月  12 18:49 12345678  
    drwxr-xr-x   2 0 0    6 8月  10 08:22 公共
    drwxr-xr-x   2 0 0    6 8月  10 08:22 模板
    drwxr-xr-x   2 0 0    6 8月  10 08:22 视频
    drwxr-xr-x   2 0 0    6 8月  10 08:22 图片
    drwxr-xr-x   2 0 0    6 8月  10 08:22 文档
    drwxr-xr-x   2 0 0    6 8月  10 08:22 下载
    drwxr-xr-x   2 0 0    6 8月  10 08:22 音乐
    drwxr-xr-x   2 0 0    6 8月  10 08:22 桌面
    [root@server1 ~]# alias 123="12345678"    //将别名设置为123
    [root@server1 ~]# alias -p   //显示设置的别名
    alias 123='12345678'
    alias cp='cp -i'
    alias egrep='egrep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias grep='grep --color=auto'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
    [root@server1 ~]# alias 123   //查看某个别名代表的含义
    alias 123='12345678'
    [root@server1 ~]# unalias 123  //删除当前设置的别名,此方法只针对当前状态下的设置,如果退出再进入则无效
    [root@server1 ~]# 
    
    

    十一,指定目录或文件所占用磁盘空间大小

      du  -a : 统计磁盘空间占用时包括所有文件,而不仅仅只统计目录
      du  -h: 以更人性化的方式(默认以B计数,但不显示单位)显示出统计结果
      du  -s :只统计所占用空间总的(Summary)大小,而不是统计每个子目录,文件的大小
    
    [root@server1 ~]# du -sh /var/log/        //统计磁盘所占用的空间大小
    6.7M	/var/log/
    [root@server1 ~]# du -ah /var/log/     //统计磁盘所每个文件及目录所占用的空间大小并列出来,这里只展示了其中一部分
    0	/var/log/tallylog
    4.0K	/var/log/grubby_prune_debug
    44K	/var/log/lastlog
    28K	/var/log/wtmp
    4.0K	/var/log/btmp
    [root@server1 ~]# 
    

    注意:-s 与 -a 不能同时使用

    十二, 创建新目录 mkdir

    格式::

    • mkdir aaa 在当前目录下创建 aaa
    • mkdir /aaa/bbb 在aaa目录下创建bbb
      例如:
    root@server1 ~]# mkdir aaa   //在当前目录创建aaa
    [root@server1 ~]# ls -lh
    总用量 16K
    drwxr-xr-x   2 root root    6 8月  12 18:49 12345678
    drwxr-xr-x   2 root root    6 8月  12 19:20 aaa   //新创建的aaa
    dr-xr-xr-x   5 root root 4.0K 8月  10 05:00 boot
    drwxr-xr-x 137 root root 8.0K 8月  10 08:20 etc
    [root@server1 ~]# mkdir /aaa/bbb     //在目录aaa下面创建bbb
    [root@server1 ~]# cd /aaa   //查看创建的bbb
    [root@server1 aaa]# ls -ln
    总用量 0
    -rw-r--r-- 1 0 0 0 8月  11 19:26 aa.txt
    drwxr-xr-x 2 0 0 6 8月  12 19:20 bbb   //这里就是刚才创建的bbb
    
    

    十三 ,创建空文件 -touch

    格式: touch 文件
    例如:

    [root@server1 ~]# touch /aaa/123  //在aaa下面创建文件 123
    [root@server1 ~]# cd /aaa
    [root@server1 aaa]# ls -ln
    总用量 0
    -rw-r--r-- 1 0 0 0 8月  12 20:19 123    //此为创建的文件 123
    -rw-r--r-- 1 0 0 0 8月  11 19:26 aa.txt
    drwxr-xr-x 2 0 0 6 8月  12 19:20 bbb
    
    

    注意:
    touch a 默认在家目录下面创建 路径为:/root/a
    touch /a 在根目录下面,要查看的话要进入根目录 :cd /
    touch /a/b指的是在根下面创建目录a,并在a下面创建文件 b
    例如:touch /aa tt : 指的是在根目录下创建一个aa的文件,而此时tt的路径是:/root/tt
    此时,aa指的是绝对路径,而tt是相对路径

    十四,创建连接文件 -ln

    • 为文件或目录建立链接文件,类似于windows系统的快捷方式
    • 连接文件类型
      • 软连接 又称为符号连接,创建连接的时,会创建一个访问的快捷方式,当删除链接时
        软连接失效
      • 硬链接 :创建连接时,会创建一个文件,删除连接对文件没有影响

    例如:

    硬链接:
    [root@server1 ~]# vi a.txt  / 创建一个a文件,并编辑内容为123
    [root@server1 ~]# cat a.txt
    123
    [root@server1 ~]# ln a.txt b.txt   / 给a 创建一个硬链接b
    [root@server1 ~]# cat b.txt      /查看b链接
    123
    [root@server1 ~]# rm a.txt    /删除 a 链接
    rm:是否删除普通文件 "a.txt"?y
    [root@server1 ~]# cat a.txt
    cat: a.txt: 没有那个文件或目录
    [root@server1 ~]# cat b.txt     /查看b链接依旧存在
    123
    
    软连接:(要绝对路径,不要相对路径)
    [root@server1 ~]# vi a.txt   /创建a连接 ,并编辑内容为 000
    [root@server1 ~]# cat a.txt   
    000
    
    [root@server1 ~]# ln -s a.txt c.txt   /给 a 创建 软连接 c
    [root@server1 ~]# cat c.txt     /查看软连接 c
    000
    
    [root@server1 ~]# rm a.txt    /删除 a
    rm:是否删除普通文件 "a.txt"?y
    [root@server1 ~]# cat c.txt   / 查看 c  此时 c 也同时失效
    cat: c.txt: 没有那个文件或目录
    

    十四,复制文件或者目录 - cp

    • 将需要复制的文件或目录(源)重建一份,并保存为新的文件或者目录
    • 格式为: cp [选项】… 源文件或目录 … 目标文件或目录
    • 常用选项
    选项 说明
    -f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
    -i 覆盖目标文件或目录时提醒用户确认
    -p 复制时保持源文件的权限,属主及时间标记等属性不变
    -r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
    例如:
    [root@server1 ~]# cp -rp /root/12345678/ /aaa      //复制 12345678到 aaa下面
    [root@server1 ~]# ls -ln
    总用量 16
    drwxr-xr-x   2 0 0    6 8月  12 18:49 12345678
    drwxr-xr-x   2 0 0    6 8月  12 19:20 aaa
    dr-xr-xr-x   5 0 0 4096 8月  10 05:00 boot
    [root@server1 ~]# cd /aaa     //进入查看aaa
    [root@server1 aaa]# ls -ln
    总用量 12
    -rw-r--r--  1 0 0    0 8月  12 20:19 123
    drwxr-xr-x  2 0 0    6 8月  12 18:49 12345678   //文件已被复制过来
    drwx------  9 0 0  139 8月  12 20:56 proc
    
    

    十五,删除文件或目录 - rm

    • 格式 :rm 删除的文件或目录
    • 常用选项 :-f(忽略不存在的文件和参数,不提示) , -i (移除前提示), -r(递归删除目录及其文件)
      例如:
    drwxr-xr-x   2 0 0    6 8月  12 21:08 12345678
    drwxr-xr-x   2 0 0    6 8月  12 19:20 aaa
    drwxr-xr-x   2 0 0    6 8月  10 08:22 下载
    drwxr-xr-x   2 0 0    6 8月  10 08:22 音乐
    drwxr-xr-x   2 0 0    6 8月  10 08:22 桌面
    [root@server1 ~]# rm -r 12345678 / 删除 12345678
    rm:是否删除目录 "12345678"?y
    [root@server1 ~]# 
    [root@server1 ~]# cd /aaa
    [root@server1 aaa]# ls -ln
    总用量 12
    -rw-r--r--  1 0 0    0 8月  12 20:19 123
    drwxr-xr-x  2 0 0    6 8月  12 18:49 12345678   //此时aaa下的12345678文件
    [root@server1 aaa]# cd
    [root@server1 ~]# rm -rf /aaa/12345678   //递归删除aaa下的文件12345678
    [root@server1 ~]# cd /aaa
    [root@server1 aaa]# ls -ln
    总用量 12
    -rw-r--r--  1 0 0    0 8月  12 20:19 123
    

    十六,移动文件或目录- mv

    格式:mv 源文件或目录 目标文件或目录
    例如:

    drwxr-xr-x   2 0 0    6 8月  12 19:20 aaa
    drwxr-xr-x   2 0 0    6 8月  12 21:18 bbb
    dr-xr-xr-x   5 0 0 4096 8月  10 05:00 boot
    drwxr-xr-x 137 0 0 8192 8月  10 08:20 etc
    [root@server1 ~]# mv /root/aaa /bbb    //将aaa移动到 bbb下面
    [root@server1 ~]# ls -ln   //查看已经没有aaa
    总用量 16
    drwxr-xr-x   2 0 0    6 8月  12 21:18 bbb
    dr-xr-xr-x   5 0 0 4096 8月  10 05:00 boot
    drwxr-xr-x 137 0 0 8192 8月  10 08:20 etc
    
    [root@server1 ~]# cd /bbb  //进入bbb查看
    [root@server1 bbb]# ls -ln
    总用量 0
    drwxr-xr-x 2 0 0 6 8月  12 19:20 aaa //aaa已被移动过来
    [root@server1 bbb]# 
    
    

    十七 查找命令 /或文件目录存放目录-which

    格式:which 文件或者目录名

    例如:

    [root@server1 ~]# which ls  
    alias ls='ls --color=auto'  
    	/usr/bin/ls  //文件存放位置
    [root@server1 ~]# 
    
    

    十八,查找文件或目录 -find

    格式:find 查找范围 查找条件

    查找类型 关键字 说明
    按名称查找 -name 根据目录文件的名称进行查找,允许使用“*”及“?”通配符
    按文件大小查找 -size 一般使用“+”,“-”号设置超过或小于指定的大小作为查找条件
    按文件属主 -user 根据文件是否属于目标用户进行查找
    按文件类型查找 -type 根据文件的类型进行查找,文件类型包括普通文件(f),目录(d)块设备文件(b)字符设备文件(c)等

    例如:

    [root@server1 ~]# find /aaa -size +100k -a -name "1*"  //查找aaa目录下以1开头并超过100k的文件
    /aaa/123    //显示出了文件全名及路径
    [root@server1 ~]# 
    
    
    展开全文
  • 下午在运行以下代码时,结果有两可能:25或30 val list = (1 to 4).toList var res = list.par.aggregate(5)(_+_,_+_) 关于aggregate函数,这是一个具有柯里化特征函数;可以传入自定义两个方法,将计算过程...

    下午在运行以下代码时,结果有两种可能:25或30

    val list = (1 to 4).toList
    var res = list.par.aggregate(5)(_+_,_+_)

    关于aggregate函数,这是一个具有柯里化特征的函数;可以传入自定义两个方法,将计算过程打印一遍

            val list = (1 to 4).toList
            // 第一个()内的5传递给第二个()内seqno函数作为每次循环(列表中元素为n,遍历完整个列表循环则结束)的第一个参数m
            // combine函数将之前的返回值作为传入参数进行运算
            var res = list.par.aggregate(5)(seqno,combine)    
            
            //等同于_+_   
            def seqno(m:Int,n:Int): Int ={
                val s = "seq_exp=%d+%d"
                println(s.format(m,n))
                return m+n
            }
    
            //等同于_+_
            def combine(m:Int,n:Int): Int ={
                val s = "com_exp=%d+%d"
                println(s.format(m,n))
                return m+n
            }
    seq_exp=5+2
    seq_exp=5+3
    seq_exp=5+1
    seq_exp=5+4
    
    com_exp=6+7
    com_exp=8+9
    
    com_exp=13+17

    最终结果应该是30(5*4+1+2+3+4)才是理想的

    这就需要考虑到机器cpu内核线程的数量了,par函数将以上集合转换为4个元素并行集合,也就是理想状态下需要有4个线程参与运算,所以才是4*5,5传递给了给个并行的线程,相当于每个线程运行aggregate()函数,只要在运行全程中有4个线程以上是有运行条件时才会得到理想结果30

    即使有足够多的内核进行运行,还要考虑效率问题与cpu占有率,所以为了达到并行的效果(>1线程),至少需要2个线程在不断地运行

    我的电脑是4核8线程,所以最理想的状态下有8个线程同时运行(允许8个元素的并行集合),但实际上很难达到

    比如增加运行的次数

            val list = (1 to 5).toList
            for (i <- 1 to 10000) {
                var res = list.par.aggregate(5)(_+_,_+_)
                println(res)
    
            }

    理想结果应该为 5*5+5!=40,只有在程序刚跑起来的一会输出了大量的40,而基本后半段结果都为30(5!+3*5)

    不过像aggregate和fold应该很少有给第一个函数赋不为0的值的需求,一般都为list.par.aggregate(0)(xx,xx)来对并行集合运算,这样就不需要考虑内核线程影响结果值了,反正是至少有2个线程在运行

    fold函数只能做一种运算

    val b=Array(1,2,3,4,5,6)
    println(b.fold(10)(_+_))  //31
    println((b.par.fold(10)(_+_)))   //与内核有关,我最高81,即6个线程在运行,6*10+6!
    println((b.par.fold(0)(_+_)))    //21,并行运行结果,效率比b.fold(0)(_+_)高

     

    展开全文
  • 数据4种逻辑结构: 1.集合结构:数据元素之间没有任何关系....常见的4种数据存储结构: 1.顺序存储结构:借助数据元素之间的相对位置来表示元素之间的逻辑结构.(vector动态数组、deque双端队列、stack栈容器、queue队...
  • Java:那些关于集合的知识都在这里了!

    千次阅读 多人点赞 2018-12-17 08:56:22
    前言 在Java中,集合的使用可谓是重中之重 本文将献上一份 全面 &...Java集合的类型可分为Set、List、Map、Queue 4种 具体介绍如下 下面会更加详细地说明 4. 集合继承关系 Java集合的根...
  • 2.集合与元素 一般的,所谓集合(简称集)是指具有某种特定性质的事物的总体,组成这个集合的事物称为该集合的元素(简称元)。通常用大写拉丁字母A,B,C,…表示集合,用小写拉丁字母a,b,c,…表示集合的元素。 3....
  • 数据的4种逻辑结构4种存储结构

    千次阅读 2015-09-16 20:11:20
    数据4种逻辑结构: 1.集合结构:数据元素之间...常见的4种数据存储结构: 1.顺序存储结构:借助数据元素之间的相对位置来表示元素之间的逻辑结构. 2.链式存储结构:借助数据元素之间的元素的指针表示数组元素的逻辑结构.
  • 如果您有一个使用Doctrine继承InvoiceLine实体有关系的Invoice实体,并且想要根据要发票内容(例如InvoiceProductLine , InvoiceShippingLine和InvoiceDiscountLine定义多个InvoiceLine类型,则可以使用此...
  • Java集合

    2021-05-07 14:49:40
    除此之外,java集合可用于保存具有放射关系的关联数组,java集合大致可分为List、Set、Queue和Map四体系,其中List代表有序,重要的集合:Set代表无序,不可重复的集合;而Map则代表具有放射关系的集合,java5又...
  • 集合与字典的关系:集合是没有value字典,即:字典内存储是key-value键值对,而集合中存储是key 集合中元素不允许重复,会覆盖 创建集合: # 创建集合 # 第一方式:直接使用{} set1 = {1, 2, 3, 4, 5,...
  • (个人觉得数组ArrayList集合的关系有点像StringStringBuffer的关系) 3.集合的分类 4.迭代器 迭代器模式:就是提供一方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。 接口的定义:
  • Java集合大致可分为一下4种: Set:无序、不可重复的集合。 List:有序、重复的集合。 Queue:队列集合。 Map:具有映射关系的集合。 这四种集合主要通过Collection以及Map两个根接口派生出。我们来看一下Collection...
  • 集合(set)是Python中一重要数据类型,表示一组各不相同元素无序集合,其主要应用于重复元素消除及关系测试等 集合在Python内部通过哈希表实现,其本征无序,输出时所显示顺序具有随机性,且运行环境相关 ...
  • java集合

    2018-05-20 21:45:55
    定义:Java中的集合类:是一工具类,就像是容器,存储任意...4、有的集合接口,提供了映射关系,可以通过关键字(key)快速查找到对应唯一对象,而这个关键字可以是任意类型。数组对比:1、数组长度固...
  • 集合: 一特殊列表 集合数据不会重复 可以测试两组数据的关系: 交集, 并集, 差集 集合数据是无序 1. 创建集合 #---------------------------方法1--------------------- list1=[1,2,3,4,5]...
  • 接口注入:接口注入模式因为具备侵入性,它要求组件必须特定接口相关联,因此并不被看好,实际使用有限Setter注入:对于习惯了传统 javabean 开发程序员,通过 setter 方法设定依赖关系更加直观构造注入:在...
  • 4种逻辑关系 1.集合——数据元素间除“同属于一个集合”外,无其它关系 2.线性结构——一个对一个,如线性表2、栈3、队列3 第234章 3.树形结构——一个对多个,如树 第5章 4.图形结构——多个对多个,如图 第6章 ...
  • 由属于关系R而不属于关系S所有元组组成的集合,即关系R中删去与关系S相同元组,组成一个新的关系,记为R-S,例子如下 (3)交 由既属于关系R又属于关系S元组组成得集合,组成一个新的关系,记为R∩S 前面三...
  • Java 集合框架

    2017-05-18 14:38:47
    定义: Java中的集合类:是一工具类,就像是容器,存储任意数量具有共同属性对象。...4、有的集合接口,提供了映射关系,可以通过关键字(key)快速查找到对应唯一对象,而这个关键字可以是任意类型。数组
  • java中级-4-Collection集合类知识串讲(3)-Map及其子类

    千次阅读 热门讨论 2015-05-26 17:38:55
    ------- android培训、java培训、期待您交流! ---------- 从图1.Java中集合...Map类接口是Collection不一样种集合,该集合存储键值对,是成对,而且对应元素关键字是唯一。Map类集合是双
  • 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下集合,它们存储数据形式不同,如下图。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4q3jlPbG-1595056402255)(img...
  • java集合框架简介

    2017-09-26 21:09:40
    Java集合框架 集合概念:java中的集合类是一工具类,像容器,用来存储任意数量具有共同属性...4.有的集合接口提供了映射关系,可通过关键字去快速查找唯一对应对象,而关键字可以是任意类型。   数...
  • java集合总结【一】

    2021-05-01 21:41:48
    1.集合的概念和作用 概念:Java集合类是一特尔别的工具类,可用于储存数量不等的对象,实现常用的数据结构,除此之外,还用于保存具有映射关系的关联数组 分类: 1.Set—无序、不可重复的集合 2.List—有序、重复...
  • java集合框架理解

    2018-06-27 20:04:12
    定义: Java中的集合类:是一工具类,就像是容器,存储任意数量具有共同...4、有的集合接口,提供了映射关系,可以通过关键字(key)快速查找到对应唯一对象,而这个关键字可以是任意类型。 数组对比:...
  • 集合概念性小知识点

    2020-05-04 19:19:59
    集合的概念 java中的集合类:是一工具类,像容器,储存任意数量的具有共同属性的对象。 集合的作用 1,在类的内部对数据进行组织。注意,有些属性类型相同,但...4,有的集合接口,提供了映射关系,可以通过关键字...
  • Map集合常用方法总结

    2020-04-15 18:13:20
    1.Map存储是键值对(一映射关系) 2.Map存储元素使用put方法,Collection使用add方法 3.Map集合中没有直接取出元素方法,而是先转成Set集合,再通过迭代获取元素 4.Map集合中key要保证唯一性,Map是双列集合,...
  • 我们知道粗集是用来表示不确定集合的数学方法。在精确集中设集合X={x1,x2,x3,x4,x5x6,x7},从x1~x7都确定是集合X中的元素。但是在粗糙集中我们无法确定某些元素是否一定属于这个集合,它可能属于也能不属于。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,147
精华内容 458
关键字:

集合与集合的4种关系