首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【小家java】SortedMap和NavigableMap的使用介绍---TreeMap的源码简单分析

SortedMap和NavigableMap 决定在讲解TreeMap的源码之前,先讲解这两个接口 SortedMap和SortedSet接口两个接口jdk1.2就已经提供,扩展的NavigableMap...Map.Entry pollLastEntry(); //返回key降序排列的NavigableMap(视图) 注意是视图,所以对它进行一个remove操作,也会影响到原来的Map的...的【不带包含标志】的子映射方法 SortedMap subMap(K fromKey, K toKey); SortedMap headMap(K toKey); SortedMap...descendingMap 方法返回映射的一个视图,该视图表示的所有关系方法和方向方法都是逆向的。升序操作和视图的性能很可能比降序操作和视图的性能要好。...TreeMap的基本操作 containsKey、get、put 和 remove 的时间复杂度是 log(n) 。 另外,TreeMap是非同步的。

1.5K20

Python编程 列表的操作(上)

座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录  前言 一.列表(list) 1.列表介绍(掌握) 2.列表创建 3.访问(查)列表内的元素(掌握) 4.删除列表内的元素...从数据结构角度看,Python 的列表是一个 可变长度 的顺序存储结构,每一 个位置存放的都是对象的指针。 我们可对列表进行 修改、切片、追加、删除、嵌套、迭代、成员判断 等操作。...2.列表创建 创建一个列表,只要把 逗号 分隔的 不同的数据元素 使用 方括号 括起来即可。...#创建:以英文状态下的 一对方括号 创建空的列表 li = [] print(type(li)) # #1.元素可以是任意类型的 2.元素可重复的 li_2...要访问 它的某个元素,以方括号加下标值的方式即可。 注意要确保索引不越界,一旦访问的 索引超过范围,会抛出异常。

77520
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Mac上开发常用的操作

    Finder: 设置后要重启Finder才能显示 defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES 复制当前文件夹路径的快捷键...Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'" 这样就可以这样打开文件了 subl a.txt 但是这样系统重启后就失效了 永久生效的方法是编辑...~/.bashrc文件,每行加入一个alias命令 vim ~/.bashrc 或者刚配置的命令 subl ~/.bashrc 添加 alias subl="'/Applications/Sublime...复制到其他文件夹内 比如添加如下 0.0.0.0 account.jetbrains.com 修改后再复制回去 设置IP 报错 BasicIPv6ValidationError 打开终端按如下命令操作...列出你的网卡 networksetup -listallnetworkservices 关闭ipv6 networksetup -setv6off "网卡名字" 设置ip地址 networksetup

    49910

    Nexus操作使用(上)

    一.参数配置 如果你想配置 nexus 的应用在本地启动的 JVM参数,可以在 nexus.vmoptions: 如果你想改变 nexus 的 端口号,可以在 nexus-default.properties...创建页面出来之后,页面上有三个框是必填的: 注意:可以多建几个proxy repository,以便于可以加入更多的远程maven仓库到我们的 group 仓库中。...唯一一点,就是看加入的proxy资源库使用的是国内的还是国外的远程仓库。加入group资源库的顺序应是:hosted仓库 > 国内proxy仓库 > 国外proxy仓库。...宿主仓库 Hosted有三种方式:Releases、Snapshot、Mixed Releases: 一般是已经发布的Jar包 Snapshot: 未发布的版本 Mixed:混合的 创建 group...而一整个的group是作为一个public,一个接口给别人使用的。 所以当查找架包的时候,如果代理资源库在前面,那就是先从远程去查找jar,而不是先从宿主仓库(本地仓库)去查找是否有jar。

    3.5K10

    【MySQL】数据库的操作(上)

    目录前言创建数据库编码集和校验集不同校验集的区别删除数据库确认当前数据库查看数据库属性修改数据库属性备份与还原数据库和表的备份还原​创建数据库在上一篇文章中便有简单讲过这个操作,但还有一些其他的细节仍未阐述...select database();这个 database() 是一个函数,本质上就是我们通过 select 调用了这个函数,从而获取当前的位置。.... > 存储备份的文件路径 //备份表图片这样我们就完成了数据库的备份,打开备份生成的文件,我们可以看到,其中的操作我们都十分熟悉,就是建立这个数据库时进行的操作。...因此,数据库的备份本质上就是将建立该数据库的方法备份起来,恢复时只需要再使用一遍这些操作即可。图片值得注意的一点是,若备份时没有带上 -B选项,则恢复前需要先创建空的数据库并使用。...还原而还原的操作是在 mysql 命令行下使用的,只要输入备份文件的路径便可进行还原。

    14900

    ------------数据库的加锁操作(上)

    从事一个项目,需要考虑数据的安全性,之前对于数据库这部分的数据操作学习的比较零散,由于手头的项目,于是系统的 学习了下数据库操作加锁的知识: -----------------------...数据库加锁: 简单的意思就是对于在执行一个操作(比如修改)时,对这个操作的对象加锁,放置其他操作读取到脏数据或者幽灵数据。    ...对于这点,我们需要简单的了解几个概念:  (1).什么是事务?        事务: 是用户定义的数据库操作系列,这些操作作为一个完整的工作单元执行。一个事务内的所有语句作为一个整体。...那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。...2.for update 排它锁,lock in share mode 共享锁 3.对于记录锁.必须开启事务. 4.行级锁定事实上是索引记录的锁定

    2K100

    【C语言】文件操作(上)

    其背后的原理也很简单,随着程序的结束,操作系统会自动回收内存空间里面的内容,而我们程序的数据就是在内存中存储的。 那我们就会想到能不能用一个外部的容器在程序还未结束时,就将一些关键的数据给保存起来。...硬盘(磁盘)上的文件就是文件。 但是在程序设计中,我们一般只讨论两种文件:数据文件、程序文件(从文件功能角度进行划分)。...回想我们之前所处理数据的输出和输入都是以终端为对象的,即从终端的键盘输入数据,运行结果显示到显示器上。...数据在内存中是以二进制的形式来存储的,如果不加以任何的形式直接输出到外存的文件中,就是二进制文件。 如果要求在外存上以ASCII码形式来存储,则需要在存储之前进行转换。...总结 本文给大家传递一个信息就是文件的重要性,以及文件的分类。这些对我们后续学习文件操作是很有必要的,希望读者们能够好好的理解。

    11410

    【C语言】文件操作(上)

    二.文件的打开与关闭 1.文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。...,则不能再进行后续操作,而需要及时检查错误....演示一下判断文件是否成功,如果失败,则用perror()函数输出错误信息后终止程序: if (pf == NULL) { perror("fopen"); return 1; } 如果成功,则继续运行后续操作...这个函数实际上,会清空缓冲区中的数据,关闭文件,并释放用于该文件的所有内存。EOF 是一个定义在头文件 stdio.h 中的常量。...下面的操作就是将pf置为空指针: pf=NULL: 三.文件的顺序读写 功能 函数名 适用于 字符输入函数 fgetc 所有输入流 字符输出函数 fputc 所有输出流 文本行输入函数 fgets 所有输入流

    7610

    在AP_EM上的骚操作

    言归正传:AP的应用,在通过工具配置后,会生成可供APP开发使用的代码和JSON的Manifest配置信息文件,经编译后APP会生成可执行文件BIN。...EM作为执行管理,其会负责读取APP的Manifest文件,获取APP的配置信息,不同的 APP在 Manifest 文件中被关联到不同的系统状态 (Machine State) 中,SM是状态管理...,通过改变进程所属的功能组状态可对进程进行启动和停止,两者之间的关系如下: 首先,SM和EM其实从本质上看都属于AP的一个进程,在AP中每个进程的生命周期如下: EM是AP第一个启动的进程,EM启动就绪后...SM正常启动运行起来后,就可通过StateClient::SetState函数对某个功能簇的工作状态进行控制,从而对隶属于相应功能簇的进程进行统一管理。...这里要介绍下功能簇的概念,功能簇可以理解为进程的集合,每个功能簇有自己的状态和过程,成为功能组Function Group States,功能组的最小单位就是一个进程,一个功能组可以配置一组进程,当SM

    84331

    手机操作系统的沉浮往事(上)

    移动终端操作系统,也就是指手机、平板电脑等设备所使用的操作系统。 在移动互联网高度发达的今天,我们使用移动终端操作系统的时长,可能已经远远超过了Windows等桌面操作系统。...那么,你真正了解这些移动终端操作系统吗?在长达半个世纪的手机发展历程中,涌现过哪些经典的移动终端操作系统?又有哪些系统已经被时代淘汰?...它有计算器、日历、闹钟和简单的数据库功能。 Organizer/Organizer II,被认为是世界上最早的实用性掌上电脑。...为了让PDA支撑更多的功能,厂商们开始定制研发专门的PDA操作系统。这类系统,可以说是移动终端操作系统的最早版本。...Windows CE 另一个大家熟悉的移动操作系统,来自微软。 微软作为桌面操作系统的巨头,目睹移动设备的崛起,当然不会无动于衷。他们很快启动了移动设备专用操作系统的开发计划。

    23110

    BackgroundWorker在单独的线程上执行操作

    直接使用多线程有时候会带来莫名其妙的错误,不定时的发生,有时候会让程序直接崩溃,其实BackgroundWorker 类允许您在单独的专用线程上运行操作。...可以通过编程方式创建 BackgroundWorker,也可以将它从“工具箱”的“组件”选项卡中拖到窗体上。...如果在 Windows 窗体设计器中创建 BackgroundWorker,则它会出现在组件栏中,而且它的属性会显示在“属性”窗口中。 若要设置后台操作,请为 DoWork 事件添加一个事件处理程序。...在此事件处理程序中调用耗时的操作。若要启动该操作,请调用 RunWorkerAsync。若要收到进度更新通知,请对 ProgressChanged 事件进行处理。...如果您需要能进行响应的用户界面,而且面临与这类操作相关的长时间延迟,则可以使用 BackgroundWorker 类方便地解决问题。 注:文章参考了MSDN许多

    1.2K10

    操作系统进程的实现---上---04

    操作系统进程的实现---04 温故知新 计算机硬件、操作系统、启动、接口… 知新 进程概念 管理CPU,先要使用CPU… 管理CPU的最直观方法 多道程序、交替执行,好东西啊!...CPU和内存 —> 涉及进程 磁盘和外设 —> 文件管理 ---- 操作系统启动就是将操作系统从磁盘读入内存,然后调用相关初始化方法,初始化形成相关数据结构,让操作系统知道硬件的模样,然后启动shell...操作系统感知和组织进程都需要PCB的支持。...---- 核心在于进程同步(合理的推进顺序) 要确保多进程操作同一共享内存区域时的进程同步,常规思路就是加锁,操作系统也是这样做的,下面来看看: ---- 用户级线程 多进程是操作系统的基本图像...,然后将对应用户线程关联的TCB恢复到esp上,然后在弹出esp指向的栈顶元素位置开始执行。

    59140

    操作符超详解(上)

    上我会介绍算术操作符,部分赋值操作符,关系操作符,逻辑操作符,条件操作符,逗号表达式,部分单目操作符         比较进阶的操作符:移位操作符,位操作符、解引用操作符等。        ...我知道你可能会看的头皮发麻,但是你先别急,这里有许多操作附,学过数学的就,对这些操作符进行用法和逻辑上的了解后即可轻松掌握。列如算数操作符里的,加减乘除,取等,取模运算。...        事实上除号(  /  ),在C语言里还有许多小细节。...= 0) printf("是闰年\n"); else if (year % 400 == 0) printf("是闰年\n"); return 0; }   实际上我们可以对上述代码进行优化...实际上它什么也没有,因为我们知道,后置++是先执行在++,简单说就是先使用a在逻辑或里进行判断,a在加上1。

    16410

    c语言操作符(上)

    (逻辑反操作): (2)'&' (取地址操作符) (3)sizeof()操作符与数组的联系 (4)' ~ ' (按位取反操作符) (5)前置++和后置++操作符 一、算术操作符 算术操作符是最常见的,包括...除了‘’%‘(取余)操作符以外,其它操作符都可以用于浮点型., ’‘%’(取余)操作符的左右两个操作数必须为整数。返回的是整除之后的余数。 二、移位操作符 移位操作符的作用是什么呢?...其实"位"是指二进制位,所以移位操作符是指移动一个数的二进制位. 注意:!!! 移位操作符的操作数只能是整数。...三、位操作符 位操作符的分类: & //按位与 | //按位或 ^ //按位异或 注意:!!! 他们的操作数必须是整数。...上栗子 #include int main() { int a = 5, c = 0; //前置++ c = ++a;//先a自增1使得a的值变为6,然后再被赋值到c.

    60220

    Python作业之Excel操作。上

    使用Python操作Excel文件。 ? 安装环境我就不写了,不需要写了。。。个人还是建议python版本3.6,3.7就很完美,我现在3.8,时不时的出现错误,心塞塞。。。...操作一个表的方法有很多,这里先简单介绍第一种,先下面的命令执行一下 pip install pandas pip install openpyxl 这个库不支持2003版本的excel,excel 2010...之后的都是支持的,现在一般电脑自带的excel版本都比较新,所以用这个库不会遇到太多的兼容性问题。...另外可以看看操作excel有什么库: xlrd库:从excel中读取数据,支持xls、xlsx xlwt库:对excel进行修改操作,不支持对xlsx格式的修改 xlutils库:在xlw和xlrd中,...ws = wb.active # 修改A1单元格的值 ws['A1'] = '苟日新,日日新' # 保存文件 wb.save('iamhappy.xlsx') 常见的操作是这样的 active时激活这个表的意思

    93740

    CAD2007操作教程上

    命令行:是供用户通过键盘输入命令的地方,位于窗口下方,F2为命令行操作的全部显示。...极半径〈极角度数,输入时一定要在英文状态下 相对坐标(针对于上一点来说,把上一点看作原点) 相对直角坐标:是指该点与上一输入点之间的坐标差(有正,负之分)相对的符号“@”,输入方法:值,输入时一定要在英文状态下...二、鼠标作用 左键为1.选择物体2.确定图形第一点的位置 滚轴作用为1.滚动滚轴放大或缩小图形(界面在放大或缩小) 2.双击可全屏显示所有图形 3.如按住滚轴可平移界面 右键作用为1.确定 2.重复上一次操作...(重复上一次操作快捷键还有空格和回车) 三、选择物体的方法 1、直接点击 2、正选:左上角向右下角拖动(全部包含其中) 3、反选:右下角向左上角拖动(碰触到物体的一部分就行) 在CAD中创建的单位是mm...指定中点后,执行以下操作之一, ⊙输入环形阵列中点的X坐标值和Y坐标值 ⊙单击“拾取中点”按纽,“阵列”对话框关闭,使用定点设备指定环形阵列的圆心, 4. 选择“选择对象” 5.

    3.7K30
    领券