map

阅读 / 问答 / 标签

interactive map是什么意思

interactive map交互式地图双语对照词典结果:网络释义1. 互动式地图2. 交互性地图例句:1.Explore our interactive map and guide to the race for therepublican candidacy. 看看我们的互动地图和本次共和党候选人提名竞选的指南。.-----------------------------------如有疑问欢迎追问!满意请点击右上方【选为满意回答】按钮

interactive map是什么意思

交互式地图

AicGIs的mxd文件怎么转换成Mapgis的文件

mxd是一个索引文件,转换没意义,要转就要转shp.E00数据,用mapgis的文件转换功能直接读取shp.E00就转换为点线区文件了

ArcGIS入门教程(1)——ArcMap应用基础

通过实验操作,掌握ArcMap软件的基础操作,主要包括地图文档打开与保存、图层显示与数据查看、简单符号化、要素标识、注记添加、地图元素添加、地图排版与打印,对ArcMap软件的基础操作加以熟悉。 (1)地图文档文件(airport.mxd); (2)源数据文件(airport.gdb),其中各图层含义如下:“Schools”表示初级、中级、高级和私立学校的位置;“Runways”表示机场跑道的位置;“Arterials”表示主干道;“Cne165”表示噪声等值线;“Airport_area”表示计划的机场扩建区;“county”表示县界。 在开始菜单中找到ArcMap并单击打开,启动ArcMap,ArcMap启动界面如图1所示。 说明:打开ArcMap时,会弹出【ArcMap 启动】对话框。该对话框提供了几种启动ArcMap对话的选项。可以在左边目录中,打开一张最近打开过的地图文件。 (1)点击主菜单中的【文件】→【打开】,启动【打开】对话框,在对话框中选择到需要打开的Mxd地图文档,如图2所示。 说明:地图文档(.Mxd)一种ArcMap存储地图的形式,可以被用户显示、修改或者与其他用户共享。但地图文档(.Mxd)并不存储实际的数据,而是存储实际数据在硬盘上的指针和有关地图显示的信息。地图文件一般还存储了地图的其他信息,如地图的大小、所包含的地图元素(标题、比例尺等)。同时还需要注意的是,不同版本的Mxd文件是不同的,高版本可以兼容之前的版本,但是低版本却无法打开高版本的Mxd文件。 (2)点击【打开】,将选择的地图文档加载到ArcMap中,地图文档加载结果如图3所示,左侧为内容表,列出了可用来显示的地理图层;右侧为地图显示区。 (1)在内容表中列出了与本地图相关的所有图层,选中图层名字前面的复选框,可以显示它;取消选中,则可以关闭它。如图4所示,选中“Schools”和“Runways”前的复选框来显示这两个图层。 (2)在Tools工具条中使用【全图显示】、【放大】、【缩小】、【平移】、工具可以对地图进行简单的查看。工具查看结果如图5-1、5-2、5-3、5-4所示。 (1)在内容表中双击点图层“Schools”图层下面的点符号,在弹出的【符号选择器】窗口找到【学校】这一符号,单击该符号,点击确定,如图6所示。 (2)点击OK按钮,“Schools”图层重新符号化结果如图7所示。 使用地图查看工具查找位于噪声等值线以内的学校。并使用【识别】工具查看查找到学校的属性,如图8所示,可以看到学校的名字为“Elm Elementary”。 注意:在该操作中,只有位于内容列表最上层的图层中的要素才会被识别出来。 右击菜单栏空白处,加载【绘图】工具条,如图9所示。 单击【文本】按钮后,在识别出的学校旁边单击,在出现的文本框中输入“Northwestern Prep”,并回车,添加结果如图10所示。 ArcMap有数据视图或布局视图两种工作方式。数据视图集中于一个简单的数据框中,可以用来浏览或者编辑数据。布局视图则显示了地图的页面外观,可以用来进行排版和打印地图,也可以用来浏览和编辑数据。所有数据视图中的工具也适用于布局视图。 在布局视图中,可以改变页面的大小和方向。在本试验中,将创建一幅16×12 英寸的横排的地图。 (1)使用Tools工具条上的【固定比例缩小】工具将地图缩小一些;单击主菜单中【视图】→【布局页面】,切换视图至布局视图,Layout工具条弹出,显示窗口变为布局页面,并且两边都有标尺,如图11所示; (2)右击布局背景,选择【页面与打印设置】选项,或者点击【文件】,选择【页面与打印设置】选项。弹出设置参数后如图12所示窗口; (3)单击【确定】,页面显示和标尺发生变化,以反映新的大小和方向。需要手工调整数据框的大小,单击工具条上的【选择要素】工具,然后单击数据框,使用蓝色选择句柄来调整数据框的大小。如图13所示; (4)使用【布局】工具条上的【缩放至100%】和【平移】按钮。调整视图如图14所示。 ArcMap能够向地图上添加标题、图例、指北针和比例尺等地图元素。 (1)单击主菜单中【插入】→【标题】,在弹出的文本框中输入地图标题“Schools and Noise Contour”,设置大小为“36 Point”,并回车,设置情况如图15所示; (2)单击【插入】→【图例】,弹出如图16所示的【图例】向导对话框,对相关参数进行设置后,单击【下一步】按钮,接受向导的缺省图例参数。单击【完成】结束,把它拖动到地图的左下角。在默认情况下,ArcMap 按照页面来设置图例的大小,并包含当前显示的所有图层。右击图例,在弹出的菜单上选择【属性】选项,可以对其进行修改。当前使用的是默认设置。 (3)单击【插入】→【指南针】,弹出如图17所示的【指南针 选择器】窗口,选择“ESRI 指北针 12”,完成后选中添加的指北针,并将其拖动到图例的右侧。 (4)单击【插入】→【比例尺】,弹出如图18所示的【比例尺 选择器】窗口,选择“比例线 1”,完成后选中添加的比例尺,并将其拖动到图例和指北针的下面。 (5)同时选中图例和比例尺,单击Draw工具条上的【绘制】→【对齐】,从弹出的菜单中单击【左对齐】。使比例尺和图例左边界对齐。操作过程如图19所示。 点击主菜单中的【文件】→【导出地图】,在弹出的【导出地图】对话框上单击【保存】,导出地图,打印效果图如图20所示。 点击主菜单中的【文件】→【保存】,保存地图文档。 如果你的ArcGIS版本是高版本的情况,可以选择“菜单”中的“保存为副本”选项,选择你能够打开的版本保存即可,具体操作如图21,22所示。 在本实验中,通过实际操作,熟悉和掌握了ArcMap中的数据加载、数据显示与查看、简单的符号化以及地图的排版与整饰等应用基础功能。然而,GIS中采集、编辑、存储、分析、表达与制图等信息流内容繁多、ArcMap软件功能丰富,在以后学习中会要更加注重学习方法适当以及学习时间保证。

arcmap打不开mxd文件,如图所示。

1、首先确认你的mxd文件之外是否有另外的数据文件,就是界碑、取水口那些数据文件,因为mxd只是个工程文件,只是引用数据的路径,本身不包含数据内容。2、如果有数据文件,点击那个灰色带叹号的勾,设置一下文件路径重新加载一下就可以了。

a map of Africa和an Africa map 哪个正确

前一个正确。第二个中Africa是名词,不可以用来修饰map.

thymeleaf 如何取map的值

Map<Integer, String> map = new HashMap<Integer,String>();map.put(3,"区级部门");String name = map.get(3);。。。String deptTypeName = name;

java8的stream().mapToInt()什么意思?

Returns an {@code IntStream} consisting of the results of applying thegiven function to the elements of this stream.

关于graph mapper-Grasshopper问题求助讨论

改成这样就可以了。在Rhino里确实没有问题,GH里会有问题。主要是因为他们各自的实现方法不一样,Rhino拿到曲线,提取点的集合重新通过一些列算法生成loft,而GH内部提取的是曲线的起点重新构造点的集合,所以需要曲线的顺序要一致。

求生之路2附加战役 怎么使用map指令创建?

弹出控制台,然后map 地图名 回车

c++如何理解map对象的value_type是pair类型

map<string, int>::key_type v1; //stringmap<string, int>::mapped_type v2; //intmap<string, int>::value_type v3; //pair<const string, int>对于泛型编程来说,可能不知道具体类型是什么,所有就有了key_type、mapped_type、value_type这些类型。key_type就表示map中key的类型。以下两句是一个意思:map<string, int>::key_type v1;string v1;同理,mapped_type表示map中value的类型。value_type这是具体值的类型,由于map中存的是键值对pair。而key又不能修改。故为pair<const string,int>。

c++的map里面的value的类型可以是结构体吗?

当然可以,可以参看STL定义

pure maple syrup可以直接冲水喝吗

可以,也可以用来当果酱用

maple syrup 枫糖浆的瓶子怎么开啊?

用带齿的板子,很轻松就打开了。

maple syrup 中文是什么意思?

maplesyrup枫糖浆双语对照词典结果:maplesyrup[英][ˈmeiplˈsirəp][美][ˈmepəlˈsɪrəp]n.枫蜜,糖枫汁;槭浆;以上结果来自金山词霸例句:1.quebecproduces80%oftheworld"smaplesyrup.魁北克省枫糖浆的生产量占全世界的80%。

加拿大产的枫叶糖浆maple syrup有什么功效

总体来说,maplesyrup没什么功效。它的甜不是白砂糖的甜,是枫树的甜,比较香。浇在pancake上比较好吃,加拿大人传统的都是浇在pancake上

加拿大特产maple syrup 和maple cream 怎么食用

Maple syrup,这个我要说一说啦,在加拿大的时候,当地的朋友在家里做了地道的甜点就用这个,超好吃。做法很简单,一般的吐司面包片,上面抹上maple syrup, 按个人口味看你要放多少, 然后倒一点牛奶在面包片上。非常棒!

加拿大产的枫叶糖浆maple syrup有什么功效

总体来说,maple syrup没什么功效。它的甜不是白砂糖的甜,是枫树的甜,比较香。浇在pancake上比较好吃,加拿大人传统的都是浇在pancake上

ant和fat跟map读音相不相?

三个单词中 fat 和 map 里的 a 字母读梅花短元音。ant 里的 a 发长元音 / a: /

MapReduce之金庸的江湖人物分析项目

通过一个综合数据分析案例:”金庸的江湖——金庸武侠小说中的人物关系挖掘“,来学习和掌握MapReduce程序设计。通过本项目的学习,可以体会如何使用MapReduce完成一个综合性的数据挖掘任务,包括全流程的数据预处理、数据分析、数据后处理等。 1 任务1 数据预处理 1.1 任务描述 从原始的金庸小说文本中,抽取出与人物互动相关的数据,而屏蔽掉与人物关系无关的文本内容,为后面的基于人物共现的分析做准备。 1.2 关键问题 1.2.1 中文分词和人名提取 使用开源的Ansj_seg进行分词。Ansj_seg不仅支持中文分词,还允许用户自定义词典,在分词前,将人名列表到添加用户自定义的词典,可以精确识别金庸武侠小说中的人名。 但实际测试的时候发现,Ansj_seg分词会出现严重的歧义问题,比如“汉子”属于人名列表中的人名(nr),但Ansj_seg可能会错误地将它分类为名词(n)。因此,如果根据词性提取人名,会导致最后提取的人名太少。解决方法是在提取人名的时候,需要在将人名加入用户自定义词典的同时,构造一个包含所有人名的字典,对分词的结果逐个进行测试,如果在字典里,就是人名。 1.2.2 文件传输 使用HDFS传递数据。考虑到人名列表文件已经存放在了HDFS里,所以使用HDFS的方式不需要移动人名列表文件,只需要在Configuration中设置文件在HDFS文件系统中的路径,然后在Mapper的setup()函数里调用HDFS的函数获取文件内容即可。 1.2.3 单词同现算法 两个单词近邻关系的定义:实验要求中已经说明,同现关系为一个段落。 段落划分:非常庆幸的是,小说原文中一个段落就是一行,因此,不需要自己定义FileInputFormat和RecordReader。 1.3 MapReduce设计 1.3.1 Mapper 1.3.2 Reducer 1.3.3 Driver 2 任务2 特征抽取:人物同现统计 2.1 任务描述 完成基于单词同现算法的人物同现统计。在人物同现分析中,如果两个人在原文的同一段落中出现,则认为两个人发生了一次同现关系。我们需要对人物之间的同现关系次数进行统计,同现关系次数越多,则说明两人的关系越密切。 2.2 关键问题 2.2.1 人名冗余 在同一段中,人名可能多次出现,任务一只负责提取出所有的人名,没有剔除多余的人名,任务必须在输出同现次数之前处理冗余人名。我的做法是在Mapper中创建一个集合,把所有人名放入集合中,集合会自动剔除冗余的人名。 2.2.2 同现次数统计 两个人物之间应该输出两个键值对,如“狄云”和“戚芳”,应该输出“<狄云,戚芳> 1”和“<戚芳,狄云> 1”。多个段落中允许输出相同的键值对,因此,Reducer中需要整合具有相同键的输出,输出总的同现次数。 2.3 MapReduce设计 2.3.1 Mapper 2.3.2 Reducer 3 任务3 特征处理:人物关系图构建与特征归一化 3.1 任务描述 根据任务2人物之间的共现关系,生成人物之间的关系图。人物关系使用邻接表的形式表示,人物是顶点,人物之间关系是边,两个人的关系的密切程度由共现次数体现,共现次数越高,边权重越高。另外需要对共现次数进行归一化处理,确保某个顶点的出边权重和为1。 3.2 关键问题 3.2.1 确保人物的所有邻居输出到相同结点处理 在Mapper结点将输入的键值对“<狄云,戚芳> 1”拆分,输出新的键值对“<狄云> 戚芳:1”,“狄云”的所有邻居会被分配给同一个Reducer结点处理。 3.2.2 归一化 在Reducer结点首先统计该人物与所有邻居同现的次数和sum,每个邻居的的同现次数除以sum就得到共现概率。为了提高效率,在第一次遍历邻居的时候,可以把名字和共现次数保存在链表里,避免重复处理字符串。 3.3 MapReduce设计 3.3.1 Mapper 3.3.2 Reducer 4.1 任务描述 经过数据预处理并获得任务的关系图之后,就可以对人物关系图作数据分析,其中一个典型的分析任务是:PageRank 值计算。通过计算 PageRank,我们就可以定量地获知金庸武侠江湖中的“主角”们是哪些。 4.2 PageRank原理 PageRank算法由Google的两位创始人佩奇和布林在研究网页排序问题时提出,其核心思想是:如果一个网页被很多其它网页链接到,说明这个网页很重要,它的PageRank值也会相应较高;如果一个PageRank值很高的网页链接到另外某个网页,那么那个网页的PageRank值也会相应地提高。 相应地,PageRank算法应用到人物关系图上可以这么理解:如果一个人物与多个人物存在关系连接,说明这个人物是重要的,其PageRank值响应也会较高;如果一个PageRank值很高的人物与另外一个人物之间有关系连接,那么那个人物的PageRank值也会相应地提高。一个人物的PageRank值越高,他就越可能是小说中的主角。 PageRank有两个比较常用的模型:简单模型和随机浏览模型。由于本次设计考虑的是人物关系而不是网页跳转,因此简单模型比较合适。简单模型的计算公式如下,其中Bi为所有连接到人物i的集合,Lj为认为人物j对外连接边的总数: 在本次设计的任务3中,已经对每个人物的边权值进行归一化处理,边的权值可以看做是对应连接的人物占总边数的比例。设表示人物i在人物j所有边中所占的权重,则PageRank计算公式可以改写为: 4.3.2 PageRanklter类 GraphBuilder将数据处理成可供迭代的格式,PageRank的迭代过程由PageRanklter类实现,包含一个Map和Reduce过程。Map过程产生两种类型的<key,value>:<人物名,PageRrank值>,<人物名,关系链表>。第一个人物名是关系链表中的各个链出人物名,其PR值由计算得到;第二个人物名是本身人物名,目的是为了保存该人物的链出关系,以保证完成迭代过程。以上面的输出为例,则Map过程产生的键值对为<完颜萍, 1.0 0.005037>,<小龙女, 1.0 0.017632>,……,<一灯大师, #完颜萍:0.005037783;……>。 Reduce过程将同一人物名的<key,value>汇聚在一起,如果value是PR值,则累加到sum变量;如果value是关系链表则保存为List。遍历完迭代器里所有的元素后输出键值对<人物名,sum#List>,这样就完成了一次迭代过程。 PR值排名不变的比例随迭代次数变化的关系图如下,由于我们考虑的是找出小说中的主角,所以只要关心PR值前100名的人物的排名的变化情况,可以看到迭代次数在10以后,PR值排名不变的比例已经趋于稳定了,所以基于效率考虑,选取10作为PR的迭代次数。 4.3.3 PageRankViewer类 当所有迭代都完成后,我们就可以对所有人物的PageRank值进行排序,该过程由PageRankViewer类完成,包含一个Map和Reduce过程。Map过程只提取迭代过程输出结果中的人物名以及对应的PageRank值,并以PageRank值作为key,人物名作为value输出。为了实现PageRank值从大到小排序,需要实现DescFloatComparator类来重写compare方法以达成逆序排序。由于可能存在PageRank值相同的情况,所以还需要一个reduce过程来把因PageRank值相同而汇聚到一起的人物名拆开并输出。 PageRankMapper PageRankReducer Driver类 5.1 任务描述 标签传播(Label Propagation)是一种半监督的图分析算法,他能为图上的顶点打标签,进行图顶点的聚类分析,从而在一张类似社交网络图中完成社区发现。在人物关系图中,通过标签传播算法可以将关联度比较大的人物分到同一标签,可以直观地分析人物间的关系。 5.2 标签传播算法原理 标签传播算法(Label Propagation Algorithm,后面简称LPA)是由Zhu等人于2002年提出,它是一种基于图的半监督学习方法,其基本思路是用已标记节点的标签信息去预测未标记节点的标签信息。LPA基本过程为:(1)每个结点初始化一个特定的标签值;(2)逐轮更新所有节点的标签,直到所有节点的标签不再发生变化为止。对于每一轮刷新,节点标签的刷新规则如下:对于某一个节点,考察其所有邻居节点的标签,并进行统计,将出现个数最多的那个标签赋值给当前节点。当个数最多的标签不唯一时,随机选择一个标签赋值给当前节点。 LPA与PageRank算法相似,同样需要通过迭代过程来完成。在标签传播算法中,节点的标签更新通常有同步更新和异步更新两种方法。同步更新是指,节点x在t时刻的更新是基于邻接节点在t-1时刻的标签。异步更新是指,节点x在t时刻更新时,其部分邻接节点是t时刻更新的标签,还有部分的邻接节点是t-1时刻更新的标签。若LPA算法在标签传播过程中采用的是同步更新,则在二分结构网络中,容易出现标签震荡的现象。在本次设计中,我们考虑到了两种更新方法,并进行了比较。 5.3 标签传播算法在mapreduce上的实现细节 5.3.1 LPAInit类 为实现LPA的迭代过程,需要先给每个人物赋予一个独特标签,标签初始化由LPAInit类完成,仅包含一个Map过程。标签由数字表示,Map过程由1开始,为每一个人物名赋予一个独特的标签。为了便于后面的可视化分析,我们需要把PageRank值和标签整合在一起,所以LPAInit的输入文件直接采用PageRank过程的输出文件,格式如下: 5.3.2 LPAIteration类 LPAIteration类完成标签的更新过程,其格式与LPAInit的输出格式一致,包含一个Map和Reduce过程。Map过程对输入的每一行进行切割,输出四种格式的<key,value>:<人物名,关系链表>,<人物名,PageRank值>,<人物名,标签>,<链出人物名,标签#起点人物名>。第四种格式个键值对是为了将该节点的标签传给其所有邻居。 Reduce过程对value值进行识别,识别可以通过Map过程把预先定义好的特殊字符如‘#"、‘@"来实现前缀到value上来实现。由于人物关系图中的各个边都是有权重的,并且代表两个人物的相关程度,所以标签更新过程不是用边数最多的标签而是权重最大标签来更新,我们可以预先把权重最大的若干个保存到一个链表中,如果存在多个权重相同的标签,则随机选取一个作为该人名新的标签。异步方法更新标签需要使用一个哈希表来存储已经更新标签的人物名和它们的新标签,并且在更新标签时使用该哈希表里面的标签。同步方法更新标签则不需要存储已更新的标签。 本次设计中比较了同步和异步更新两种方法,下图为标签不变的比例随迭代次数的变化。可以发现,异步收敛速度更快,只要6次迭代即可完全收敛,且标签不变的比例可达100%。而同步更新方法则不能达到100%,说明人物关系图中存在子图是二部子图。 5.3.3 LPAReorganize类 LPA算法迭代收敛后,所有人物名的标签不再变化,但是此时的标签排列是散乱的,需要把同一标签的人物名整合在一起。该过程由LPAReorganize类完成,包含一个Map和Reduce过程。Map过程对输入的每一行进行切割,以<标签,人物名#PageRank值#关系链表>格式输出。Reduce过程中,同一标签的人物名汇聚在一起,然后根据每个标签人物集合的大小从大到小排序,重新赋予标签(从1开始)。这样输出文件中同一标签的人物名就会聚集在一起。最后的输出格式如下: 5.3.2 LPAMapper类 LPAIteration类完成标签的更新过程,其格式与LPAInit的输出格式一致,包含一个Map和Reduce过程。Map过程对输入的每一行进行切割,输出四种格式的<key,value>:<人物名,关系链表>,<人物名,PageRank值>,<人物名,标签>,<链出人物名,标签#起点人物名>。第四种格式个键值对是为了将该节点的标签传给其所有邻居。 5.3.2 LPAReducer类 Reduce过程对value值进行识别,识别可以通过Map过程把预先定义好的特殊字符如‘#"、‘@"来实现前缀到value上来实现。由于人物关系图中的各个边都是有权重的,并且代表两个人物的相关程度,所以标签更新过程不是用边数最多的标签而是权重最大标签来更新,我们可以预先把权重最大的若干个保存到一个链表中,如果存在多个权重相同的标签,则随机选取一个作为该人名新的标签。异步方法更新标签需要使用一个哈希表来存储已经更新标签的人物名和它们的新标签,并且在更新标签时使用该哈希表里面的标签。同步方法更新标签则不需要存储已更新的标签。 Driver类 6.1 可视化工具Gephi Gephi是一款开源的跨平台的基于JVM的复杂网络分析软件。把PageRank和LPA的结果,转化为gexf格式,在Gephi中绘制图像并分析大数据实验结果,更加直观、易于理解。 gexf实际上是一种特殊的XML文件,python的gexf库提供了接口方便我们编辑和生成gexf文件,因此我们选择使用python处理PageRank和LPA的结果。顶点有两种属性,LPA生成的标签和PageRank计算的PR值,每条边的权重是PageRank计算出的值。在可视化的时候,标签决定顶点显示的颜色,PR值决定标签的 6.2 可视化预处理 编写一个python程序transform2xml.py,将数据分析部分得到的PR值,标签以及点连接关系处理成一个可供Gephi读取的gexf文件。 6.3 可视化结果 7 输出结果截图 7.2 同现次数统计 7.4 PageRank

如何使用Cocos2d-x 3.0制作基于tilemap的游戏

本教程将会教大家如何使用Cocos2d-x来做一个基于tile地图的游戏,当然还有Tiled地图编辑器。(我们小时候玩的小霸王小学机里面的游戏,大部分都是基于tile地图的游戏,如坦克大战、冒险岛、吞食天地等)我们将会创建一个忍者在沙漠中找西瓜吃的小游戏。在第一部分教程中,我将教大家如何使用Tile来创建地图,怎样把地图加到游戏中,怎么让地图跟随玩家滚动,以及怎样使用对象层。在第二部分教程中,我将介绍如何在地图中创建可碰撞的区域,如何使用tile属性,如何制作可拾取的物体和动态修改地图,还有确保忍者不要吃撑了!如果你还没有准备好的话,你可能需要先从《如何用Cocos2d-x3.0制作一款简单的游戏》系列教程开始学起,因为我们这个教程使用了大量的基本概念,而这些概念都可以从上面的教程中获取。好了,让我们玩一玩tile地图吧!创建工程骨架让我们首先创建整个工程的骨架,这样可以确保今后我们需要的文件都包含进来了,并且能够跑起来。首先工程命名为TileGame。接下来,下载游戏资源文件。这个资源文件包里包含了以下内容:玩家sprite。这个图片和《如何用Cocos2d-x3.0制作一款简单的游戏》差不多。我使用cxfr这个工具制作的一些音效。我使用Garage Band制作的一些背景音乐。(查看这篇博文获得更多的信息)我们将会使用的tile集合--它实际上会和tile地图编辑器一块儿使用,但是,我想把它放在这里,余下的事情会变得更容易。一些额外的“特殊”的tile,我将会在后面加以说明。一旦你获得了这些资源,解压并把它拖到你的工程的“Resources”分组下面。(编者的话:上面的音频资源都被编者转成了mp3格式)如果一切顺利,所有的文件应该都在你的工程里了。是时候制作我们的地图了!使用Tile来制作地图Cocos2d-x支持使用Tile地图编辑器创建的TMX格式的地图。(建议大家在安装的时候选择英文,本教程的Tile采用英文的)下载完之后,直接双击运行。点击FileNew,然后会出现以下对话框:在 orientation部分,你可以选择Orthogonal。Layer format我们也选默认的 Base64(zlib compressed)。接下来,设置地图的大小。记住,这个大小是以tile为单位的,而不是以像素为单位。我们将创建一个尽量小的地图,因此选择50*50。最后,你指定每个tile的宽度和高度。你这里选择的宽度和高度要根据你的实际的tile图片的尺寸来做。这个教程使用的样例tile的尺寸是32*32,所以在上面的选项中选择32*32.接下来,我们把制作地图所需要的tile集合导入进来。点击菜单栏上面的“map”菜单,“New Tileset...”,然后会出现下面的窗口:为了获得图片,点击“Browse...”按钮,然后定位到工程的的Resources文件夹,选择 tmw_desert_spacing.png文件(我们刚才解压进去的),然后加到工程中去。它会基于文件名自动填充名称。然后把新图快 名称命名为“tmw_desert_spacing.png”.同时,设置下面的Tile spacing和Margin都为1。你可以保留宽度和高度为32*32,因为tile的实际大小也是这么多。至于margin和spacing,我还没找到任何好的文档解释如何设置这两个值,下面是我的个人看法:Margin就是当前的tile计算自身的像素的时候,它需要减去多少个像素(宽度和高度都包含在内)。(类比word、css的margin)Spacing 就是相邻两个tile之间的间隔(同时考虑宽度和高度)(类比word、css的spacing)  如果你看看 tmw_desert_spacing.png,你将会看见每一个tile都有一个像素的空白边界围绕着,这意味着我们需要把margin和spacing设置为1。一旦你选择ok,你将会看到Tilesets窗口中显示了一些tiles。现在,你可以制作地图了!在Tilesets小窗口,选择一个tile,然后再在地图上的任意位置单击,你就会看到你选中的tile出现在点中的地方了。因此,继续制作地图吧---充分发挥你的聪明才智!确保增加至少一对建筑物在地图上,因为后面我们需要一些东西来做碰撞。记住一些方便的快捷方式:你可以在Tileset拾取器中拖出一个方框,一次选取多个tile。你可以使用工具栏上的“Bucket Fill Tools”按钮(就是一个桶那个)来基于一个基准tile绘制整个地图。你可以使用“Viewoom In...”和“Viewoom out...”来放大和缩小地图。一旦你完成了地图的绘制工作,在Layers选项卡的层上面双击(现在可以说是“Layer1”),然后重命名为“Background”。然后点击“FileSave”并且保存文件到你的工程的资源文件夹中,并且命名为“TileMap.tmx”。后面我们将会使用这个tmx来做一些有趣的事情,好了,让我们把地图加载到游戏中去吧!把tile地图添加到Cocos2d-x的场景中打开HelloWorldScene.h,然后添加一些成员变量:cpp// Replace the init method with the followingbool HelloWorld::init(){ if ( !Layer::init() ) { return false; } std::string file = "TileMap.tmx"; auto str = String::createWithContentsOfFile(FileUtils::getInstance()->fullPathForFilename(file.c_str()).c_str()); _tileMap = TMXTiledMap::createWithXML(str->getCString(),""); _background = _tileMap->layerNamed("Background"); addChild(_tileMap, -1); return true;}这里,我们调用TMXTiledMap类的一些方法,把我们刚刚创建的地图文件加载进去。

steamapps文件有什么用(steamapps目录在)

您好,现在我来为大家解答以上的问题。steamapps文件有什么用,steamapps目录在相信很多小伙伴还不知道,现在让我们一起来看看吧!1、steam... 您好,现在我来为大家解答以上的问题。steamapps文件有什么用,steamapps目录在相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、steam游戏文件夹查找方法:方法1.首先,打开steam客户端,点击上方的“库”。 2、2.然后,选择你想要查找的游戏。 3、3.右键单击该游戏,然后单击最下方的“属性。 4、4.进入“属性”之后,单击上方的“本地文件”。 5、5.最后,单击“浏览本地文件”,游戏所在的文件夹就这么简单的被你打开啦,是不是很简单呀。 6、如何查找安装目录方法如下:方法1.将鼠标移动到需要打开安装目录的软件的快捷方式图标(即桌面上的软件图标)上,单击右键,选择”打开文件所在的位置“2.然后系统就会直接跳转到软件的安装目录所在的位置方法21.将鼠标移动到需要打开安装目录的软件的快捷方式图标(即桌面上的软件图标)上,单击右键,选择”属性“2.在弹出的页面中选择”打开文件所在的位置“3.然后系统就会直接跳转到软件的安装目录所在的位置。

steamapps是什么文件夹

steamapps是STEAM的文件夹,STEAM上所有的文件都放在STEAM文件夹内的steamapps文件夹下。在这个文件夹下有打包成GCF的文件,有放置VALVE官方的文件夹(具体文件夹名和你的账号名一样),以及一个放置其他公司的文件(文件夹名为common)。 Steam平台是Valve公司聘请BitTorrent(BT下载)发明者布拉姆·科恩亲自开发设计的游戏和软件平台。Steam平台是目前全球最大的综合性数字发行平台之一。玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。2015年10月,Steam获第33届金摇杆奖最佳游戏平台。2019年8月21日,Steam中国项目正式定名为“蒸汽平台”。

steamapps是什么文件夹

steamapps是STEAM的文件夹,STEAM上所有的文件都放在STEAM文件夹内的steamapps文件夹下。在这个文件夹下有打包成GCF的文件,有放置VALVE官方的文件夹(具体文件夹名和你的账号名一样),以及一个放置其他公司的文件(文件夹名为common)。Steam平台是Valve公司聘请BitTorrent(BT下载)发明者布拉姆·科恩亲自开发设计的游戏和软件平台。Steam平台是目前全球最大的综合性数字发行平台之一。玩家可以在该平台购买、下载、讨论、上传和分享游戏和软件。2015年10月,Steam获第33届金摇杆奖最佳游戏平台。2019年8月21日,Steam中国项目正式定名为“蒸汽平台”。

horse、for、homework、world map这些分别怎么读?

耗时,否,厚木我可、我熬得迈普

Java 中 mustache 如何才能把后台数据(Map类型(“表名”, 数据))输出 应该是遍历中遍历

不明白你的意思 大致是Map遍历 一层不行再来一层 System.out.println("通过Map.entrySet遍历key和value"); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue()); }

透明通道贴图(Opacity Map)与Diffuse Map必须是同一个文件!是在怎么回事啊 求助导进vrp时的状况

现在游戏主流的贴图NORMAL MAP,SPECULAR MAP这两种吧。一共是四种贴图,分别是:NORMAL MAP 法线贴图、SPECULAR MAP 高光贴图、DIFFUSE MAP 颜色贴图、ALPHA 透贴。下面分别讲一下这四种贴图:NORMAL MAP(法线贴图),大多是用在CG动画的渲染以及游戏画面的制作上。将具有高细节的模型通过映射烘焙出法线贴图,贴在低端模型的法线贴图通道上,使之拥有法线贴图的渲染效果。可以大大降低渲染时需要的面数和计算内容,从而达到优化动画渲染和游戏渲染的效果。法线贴图是可以应用到3D表面的特殊纹理,不同于以往的纹理只可以用于2D表面。作为凹凸纹理的扩展,它包括了每个像素的高度值,内含许多细节的表面信息,能够在平平无奇的物体上,创建出许多种特殊的立体外形。可以把法线贴图想像成与原表面垂直的点,所有点组成另一个不同的表面。对于视觉效果而言,它的效率比原有的表面更高,若在特定位置上应用光源,可以生成精确的光照方向和反射。SPECULAR MAP(高光贴图),可以直接作用于specular color或者 specular level通道中,用于控制物体的高光颜色和高光强度,是反应光线照射在物体表面的高光区域时所产生的环境反射,它的作用是在游戏开发过程中,表现物体在受到环境影响后由于材质的不同所产生的各种折射反应。DIFFUSE MAP (颜色贴图) 直接作用于Diffuse通道中,呈现标准的表面颜色。游戏中用来绘制出物体的基本材质、固有色。ALPHA (透贴)通常为一张黑白调的图控制透明的区域,作用于Opacity通道。黑色部分为挖透区域,白色部分为保留区域。参考自:乐活游戏开发论坛

Smap的《Triangle》 歌词

歌曲名:Triangle歌手:Smap专辑:Pop Up! Smap-Victor Entertainmentタ イ ト ル名  Triangle作词.作曲者名  市川喜康都心を少し外れた 小さなこの部屋からどんなに目を凝らせど 见えないものばかりだ例えば、远い空に 谁かが祈っていたり例えば、身を潜めて キミが怯えてたりすべてに満ち足りた 明日の日を求め彷徨う 亡者の影破壊でしか见出せない未来の世界を 爱せないよ仆の目が キミの手が 仆らの声がそれぞれ异なっているように自由でこそ 生命だから仆の肌 キミの母 仆らの爱は苍く浮かぶ ちっぽけな惑星(ほし)に舞い降りた奇迹无口な祖父の想いが父へと 时代(とき)を跨ぎ一途に登り続けた ひどく过酷な道わずかな苦しみも 知らぬまま後に生まれ 生きる仆ら受け継ごう その想い声の限りに 伝えるんだ大国の英雄(ヒーロー)や 戦火の少女それぞれ重さの同じ尊ぶべき 生命だから精悍な颜つきで 构えた铳は他でもなく 仆らの心に突きつけられてる深く深く 刻まれたあの伤のように仆の目が キミの手が 仆らの声がそれぞれ异なっているように自由でこそ 生命だから仆の肌 キミの母 仆らの爱は苍く浮かぶ ちっぽけな惑星(ほし)に舞い降りた奇迹大国の悲しみも 见果てぬ母もそれぞれ重さの同じ尊ぶべき 生命(いのち)だから精悍な颜つきで 构えた铳は他でもなく 仆らの心に突きつけられてるそう、怯えるキミの手でhttp://music.baidu.com/song/1029479

PowerBI复杂地图可视化MapBox

先来看一个效果:(动画大小:3M) 随着鼠标滚动,一群密集粘连的热力地图逐渐被展开成大小不一的色点,这满足了一个从宏观到微观的展示效果。 效果说明: 整个过程平滑过渡,完美显示了整个地图。 这里需要使用Power BI的自定义视觉对象:MapBox。这是个很强大地图可视化工具,本文以该实际案例为背景来说明MapBox与之结合的使用。 案例背景:考虑一个奶茶店连锁品牌在全国甚至全球有线下店(点),并形成销售额,那么如何使用地图可视化来反映。 案例难点:看看用默认可视化的效果: 问题很明显,由于奶茶店几乎可以分布在全国的每一个城市,甚至是三级县级市,而且可能一个城市就有N家,所以这样的效果是无法接收的。 所以,我们考虑一种 渐进式的地图结构 。这类似于网页的布局,当用户在WEB页面查看是大型布局,当逐渐缩窄浏览器窗口时,布局自动缩放到合适的布局。这要求做到两点: 我们请出地图可视化领域的神器:MapBox。 可以在: https://www.mapbox.com/ 注册一个自己的帐号。 由于这个是专业级产品,它考虑全球的地图,当然是 收费 产品,但其价格模式还算厚道,提供了 50000次/月 的免费阶段,也就是如果地图被用户查看的频率不超过这个量级,就是免费的。此后按照使用量收费。 相信具有刚刚所说的全国奶茶店连锁的企业如果需要专业的地图可视化,也可以可以考虑的,对于中小型企业,例如:APP活跃用户点,运营部来查看的话,那几乎是可以在免费区域的。 注册好,如下: 这里有一个Access tokens,这个token与您的帐号对应,显然是用来计算收费的。所以:不要把你的帐号token给其他人哦。 MapBox在PowerBI中是自定义视觉对象,从市场获取如下: 在Power BI Desktop中,使用如下: 这要求数据包括:经纬度以及数值,当然可以使用扩展的一些字段,如颜色分类等。 只需要: 效果如下: 打开热力图效果: 对于一般的可视化也就可以了,但这距离预期效果还有差异。 MapBox在Power BI中的效果主要包括: 对其自定义设置,体现在 缩放到不同级别来显示不同的模式 。由于缩放是通过滚动鼠标滚轮体现的,也就是说,当鼠标滚轮滑动放大的一定程度的时候应该显示或大小,或热力,或集群的模式,当然也可以同时显示。由于大小,热力与集群是三种不同的模式,如果同时显示会让地图变得混乱,当然这也是默认的效果,如下: 所以,应该按照整体设置,大小,热力与集群依次设置地图,以下分别说明。 注意:这里先关闭 大小,热力与集群 随后依次打开进行设置。 选择一种喜欢的风格。这里值得注意的是,可以选择自定义的效果,这里稍后介绍,这个自定义也是MapBox真正强大的地方所在。 在上一步选择一个浅色的地图,并对其设置如下: 设置包括: 值得强调的是,这样的设置可以制作很多互相重叠却易于区分的小气泡,气泡的密集度可以通过放大因子控制。最重要的一个属性这里单独介绍,那就是:Min Zoom 与 Max Zoom。这两个属性指示从 在哪个缩放区间 按这种模式显示。 可以看出,缩放区间有从0到22级,也就是说,滚动鼠标滚轮可以依次放大缩放22次,这里在不同的放大状态下也就对应了不同的Zoom,Min Zoom与Max Zoom就表示这个区间。为了让整个地图有流畅显示。一般可以这样设置: 这样,就成了一套带层级的显示效果。具体到这个案例,如下: 也就是实现从热力到集群到大小的三阶层级,现在正在设置大小,因此设置为Min Zoom = 5, Max Zoom = 22。提示:一旦设置完成,会发现地图的气泡突然消失了,因为当前缩放未达到5,所以不会显示。 启用热力模式,并设置为Min Zoom = 0, Max Zoom = 3 启用集群模式,并设置为Min Zoom = 3, Max Zoom = 5 此时效果如下:(动画大小:3M) 对于群集,需要说明几个重要属性: 至于调整颜色之类的属性就不再说明。 至此,已经可以设置整个MapBox地图了。细心的伙伴会发现,这和文章开始的地图有两大差异: 1)没有显示中文;2)没有中国地图轮廓 。 实现中文以及设置中国地图轮廓,则必须使用更高级的玩法:MapBox Studio。这是用来设置自定义地图的,感兴趣的伙伴可以在MapBox网站打开Studio自己研究如何设计地图,这里提供了强大的设计功能,如下: 可以看到,这里可以对地图的所有缩放级别进行设置,在本例中可以看出已经使用黑色粗线描绘了国家边境线,已经用红色线描绘了城市边界,并设置了中文显示。 还可以直接通过图层来定义城市,建筑以及河流的颜色等信息。MapBox提供了强大的缩放级别,通过自定义的设置可以简化地图,使地图更适合来显示信息,如下: 当所有的街道都用淡色显示后,特别容易在PowerBI中凸显可视化效果,如下: 关于如何详细使用MapBox Studio请参考其官方文档。 MapBox 给地图可视化提供了强大功能支持。其优势包括: 赶快自己尝试吧。

story map英语手抄报 Word手抄报

四年级英语地图手抄报关于英语地图的手抄报 英语英语手抄报四年级英语地图手抄报四年级英语地图手抄报英语手抄报图片storytime四年级英语地图手抄报english story英语电子小报成品电脑手抄报板报画报简报模板732a4英语故事手抄报四年级英语地图手抄报四年级英语地图手抄报story time英语手抄报图片内容四年级英语地图手抄报fun story手抄小报供同学们参考 英语手抄报栏目小学六年级英语手抄报the story of rain英语-345kba story英语手抄报资料storymap学校手抄报 word手抄报a famous story手抄报 word手抄报关于storytime的英文手抄报 word手抄报

PIC工程中的MAP,MAP, MCS,MCW, COF的文件后缀都是什么意思,有什么作用???

Map文件里放置的是编译连接后的信息,供编程者查看参考。MCP是项目文件,包含项目的信息,例如源代码头文件等的路径、编译设置等MCW是workspace文件,不仅包含当前项目信息,还包含当前窗口开了几个,放在什么位置等信息,打开MCW文件几乎可以还原你保存时的所有状态。COF文件包含标志代码信息和目标代码以及调试信息,在硬件调试时,其实使用的就是COF文件。另外,你说的这些都是老版本的MPLAB IDE的文件,现在不推荐使用了,推荐使用MPLAB X IDE,官网上可免费下载安装。

hangstampmap这三个a的读音是否相同

hangstampmap这三个a的读音是相同的,原因是因为hangstampmap这个单词中的a的发音是/ae/。

trimap的翻译是:什么意思

trimap的翻译是三分图

map.values怎么转换为list或者string

map.values怎么转换为list或者string[]if (areas != null)for (Area eachArea : areas) {areaNames1.put(eachArea.getId(),eachArea.getName());}ArrayAdapter<String> areaAdapter = new ArrayAdapter<String>(context,android.R.layout.simple_spinner_item, ****); (String[])areaNames1.values().toArray()我用的这个不行呀谁能帮我ko啊。  Map<String, String> map = new HashMap<String, String>();map.put("1", "1");map.put("2", "2");map.put("3", "3");map.put("4", "4");Collection<String> valueCollection = map.values();final int size = valueCollection.size();List<String> valueList = new ArrayList<String>(valueCollection);String[] valueArray = new String[size];map.values().toArray(valueArray);没有指定转换类型:String[] strs = (String[])areaNames1.values().toArray(new String[0]);map里有键和值,你不要键了么 List<String> list = new ArrayList<String>(areaNames1.values());String[] arr = areaNames1.values().toArray(new String[0]);  List<FundShopDao> fundShopDaos = fundShopService.find1(spin);List<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();int x=1;for (FundShopDao fundShopDao : fundShopDaos) {HashMap<String, Object> item = new HashMap<String, Object>();item.put("xuhao", x++);item.put("code", fundShopDao.getCode());item.put("investobj", fundShopDao.getInvestObj());item.put("opendate", fundShopDao.getOpendate());item.put("scale", fundShopDao.getScale());item.put("shortname", fundShopDao.getShortname());item.put("type", fundShopDao.getType());item.put("fundmangt", fundShopDao.getFundmangt());data.add(item);}类似这样转换吧

HashMap的values()方法的问题

自己探索更有意思,用eclipse调试一下呗,看一下values返回的对象是什么类:System.out.println(map.values().getClass().getName());

c/c++ 语言 map怎样遍历vector

cout<<tmp[i].x<<tmp[i].y<<endl; 这样就可以了

新浪邮箱怎么开启IMAP

1、在新浪邮箱官网登录邮箱。2、在邮箱的主界面找到“设置”,新版的主界面与旧版稍有不同,一般位于上方,齿轮状的即是。3、点击齿轮状的设置标志,会弹出一个下拉菜单,在最后有我们找的关于邮箱的更多设置,点击进入。4、此时切换到了设置面板,在设置区我们需要切换至账户界面,因为一般情况下pop3和smtp服务都是在这里设置的。5、继续把网页往下拉,果然在下面出现了我们要找的pop3和smtp服务设置。默认状态下显示为关闭。6、此时我们需要开启它,只需要点击开启就行了,然后点击保存即可。

GIS如何把ArcMAP里线的字段数据赋给线上的点?

1、 用arctoolbox anaglist ----> overlay ------->sptatial join 工具,可以把点属性赋值到面上,即可解决。  2、在ArcGIS中可以对点、线、面数据进行批量拓扑处理。具体操作情况详见http://www.dsac.cn/Development/Detail/21983,上面有具体步骤。

foxmail中IMAP与POP3有什么区别?

精华答案POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,即Foxmail与网页版邮箱的操作不能同步。

如何将arcscene导入arcmap

如何将arcscene导入arcmap步骤如下:1、先建立一个用于储存过程文件的数据库。2、【3D Analyst工具】【转换】【由文件转出】【导入3D文件】。3、点击每个shapefile,选择properties,找到extrusion。4、在Scene里面File→AddData,把shapefile文件导入就好。接下来两步是把Scene的文件转换为DAE,方便导入SU中进行建模处理。

arcmap 打开shp格式文件失败, 出现Error opening feature class对话框,为什么?

楼主你打开的文件可能是少了两部分~-------------------------Shapefile属于一种矢量图形格式,它能够保存几何图形的位置及相关属性。该种文件格式是由多个文件组成的:*.shp-用于保存元素的几何实体。*.shx-用于保存几何实体索引。*.dbf-数据库,用于保存关于元素的属性信息。

arcmap剪切面要素没选择内容

可以根据1、范围来采集 clip(arctoolbox里面)。矩形范围 2、好像也可以通过多边形裁剪,如果没有,程序肯定可以的 3、通过mosaic也可以 1、对矢量数据进行裁减: Arctoolbox中,spatial tool extractclip 在InputFeatures中选择被裁剪的图层,在ClipFeatures中选择裁剪形状 2、利用矩形对栅格数据裁剪:Arctoolbox中,data managementrasterclip InputRaster中选择被裁剪的栅格数据,设定好矩形四个顶点即可 3、在Spatial Analyst Tools中提供了多种对栅格数据的提取方法,Arctoolbox中,SpatialAnalystToolsextraction包括提取值到点,根据属性提取,用圆提取,用多边形提取,用掩模提取,用点提取,用矩形提取等,其中的用掩模提取功能可以让我们通过不规则边界来获取需要的栅格数据。 arcgis图层裁剪 首先在ArcCatlog 里创建一个shapefile得面,加载到arcmap里,同时也要 把你剪切的shapefile文件和长方形区域的shapefile文件也加载上,切忌这两个文件不能处于编辑状态,点击arctoolbox-analysis tools-extract-clip,在打开的窗口的第一个框里输入要剪切的文件,第二个框里输入长方形区域文件,点ok就好了。

3P试验(plasmaprotamineparacoagulationtest)阳性说明什么问题?

临床上常用鱼精蛋白副凝试验(3P试验)检测患者血浆中纤维蛋白降解产物X片段的存在。3P试验阳性,说明患者血浆中存在有FDF,的X片段,对DIC的诊断有重要价值。

yarn和传统的mapreduce的主要区别在哪里?

Hadoop  它是一个分布式系统基础架构,由Apache基金会所开发。  用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。  Hadoop的框架最核心的设计就是:HDFS和MapReduce.HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。  Yarn  它是Hadoop2.0的升级版。  Yarn 的优点:  这个设计大大减小了 JobTracker(也就是现在的 ResourceManager)的资源消耗,并且让监测每一个 Job 子任务 (tasks) 状态的程序分布式化了,更安全、更优美。  在新的 Yarn 中,ApplicationMaster 是一个可变更的部分,用户可以对不同的编程模型写自己的 AppMst,让更多类型的编程模型能够跑在 Hadoop 集群中,可以参考 hadoop Yarn 官方配置模板中的 mapred-site.xml 配置。  对于资源的表示以内存为单位 ( 在目前版本的 Yarn 中,没有考虑 cpu 的占用 ),比之前以剩余 slot 数目更合理。  老的框架中,JobTracker 一个很大的负担就是监控 job 下的 tasks 的运行状况,现在,这个部分就扔给 ApplicationMaster 做了,而 ResourceManager 中有一个模块叫做 ApplicationsMasters( 注意不是 ApplicationMaster),它是监测 ApplicationMaster 的运行状况,如果出问题,会将其在其他机器上重启。  Container 是 Yarn 为了将来作资源隔离而提出的一个框架。这一点应该借鉴了 Mesos 的工作,目前是一个框架,仅仅提供 java 虚拟机内存的隔离 ,hadoop 团队的设计思路应该后续能支持更多的资源调度和控制 , 既然资源表示成内存量,那就没有了之前的 map slot/reduce slot 分开造成集群资源闲置的尴尬情况。

yarn和mapreduce资源调优

YARN允许用户配置每个节点上可用的物理内存资源,注意,这里是“可用的”,因为一个节点上的内存会被若干个服务共享,比如一部分给YARN,一部分给HDFS,一部分给HBase等,YARN配置的只是自己可以使用的,配置参数如下: (1)yarn.nodemanager.resource.memory-mb 表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。 (2)yarn.scheduler.minimum-allocation-mb 单个容器可申请的最少物理内存量,默认是1024(MB),如果一个容器申请的物理内存量少于该值,则该对应的值改为这个数。 (3) yarn.scheduler.maximum-allocation-mb 单个容器可申请的最多物理内存量,默认是8192(MB) 目前的CPU被划分成虚拟CPU(CPU virtual Core),这里的虚拟CPU是YARN自己引入的概念,初衷是,考虑到不同节点的CPU性能可能不同,每个CPU具有的计算能力也是不一样的,比如某个物理CPU的计算能力可能是另外一个物理CPU的2倍,这时候,你可以通过为第一个物理CPU多配置几个虚拟CPU弥补这种差异。用户提交作业时,可以指定每个任务需要的虚拟CPU个数。在YARN中,CPU相关配置参数如下: (1)yarn.nodemanager.resource.cpu-vcores 表示该节点上YARN可使用的虚拟CPU个数,默认是8,注意,目前推荐将该值设值为与物理CPU核数数目相同。如果你的节点CPU核数不够8个,则需要调减小这个值,而YARN不会智能的探测节点的物 理CPU总数。 (2)yarn.scheduler.minimum-allocation-vcores 单个容器可申请的最小虚拟CPU个数,默认是1,如果一个容器申请的CPU个数少于该数,则该对应的值改为这个数 (3)yarn.scheduler.maximum-allocation-vcores 单个容器可申请的最多虚拟CPU个数,默认是4 3.mapreduce---Memory调优 (1)yarn.app.mapreduce.am.resource.mb MR AppMaster需要的内存,默认是1536M (2)yarn.app.mapreduce.am.command-opts MR AppMaster的Java opts ,默认是 -Xmx1024m (3)mapreduce.map.memory.mb 每个map task所需要的内存,默认是1024M。应该是大于或者等于Container的最小内存 (4)mapreduce.reduce.memory.mb 每个reduce task所需要的内存,默认是1024M (5)mapreduce.map.java.opts map task进程的java.opts,默认是 -Xmx200m (6)mapreduce.reduce.java.opts reduce task进程的java.opts,默认是 -Xmx200m 特别注意: mapreduce.map.memory.mb >mapreduce.map.java.opts mapreduce.reduce.memory.mb >mapreduce.reduce.java.opts mapreduce.map.java.opts / mapreduce.map.memory.mb =0.70~0.80 mapreduce.reduce.java.opts / mapreduce.reduce.memory.mb =0.70~0.80 在yarn container这种模式下,JVM进程跑在container中,mapreduce.{map|reduce}.java.opts 能够通过Xmx设置JVM最大的heap的使用, 一般设置为0.75倍的memory.mb, 则预留些空间会存储java,scala code等 4.mapreduce---CPU调优 (1)mapreduce.map.cpu.vcores map task的虚拟核数,默认为1 (2)mapreduce.reduce.cpu.vcores reduce task的虚拟核数,默认为1 (3)yarn.app.mapreduce.am.resource.cpu-vcores am的虚拟核数,默认为1 假设机器的物理配置 64G 16cores 装完系统还剩 62G 预留15~20% 14G:DN 4G + NM 1G=5G 9G DN进程: 生产4G 1000m hadoop-env.sh HADOOP_NAMENODE_OPTS=-Xmx1024m HADOOP_DATANODE_OPTS=-Xmx4096m NM进程: 生产1G yarn-env.sh export YARN_RESOURCEMANAGER_HEAPSIZE=1024 export YARN_NODEMANAGER_HEAPSIZE=1024 部署同一台: 数据本地化 NN RM 经常性部署同一台 说白了 集群节点少 yarn.nodemanager.resource.memory-mb : 48G 计算总内存 固定经验计算值 yarn.nodemanager.resource.cpu-vcores : 24 yarn.scheduler.minimum-allocation-mb : 4G yarn.scheduler.minimum-allocation-vcores: 2 yarn.scheduler.maximum-allocation-mb : 8G yarn.scheduler.maximum-allocation-vcores : 4 固定经验值(不要超过5个) http://blog.itpub.net/30089851/viewspace-2127851/ http://blog.itpub.net/30089851/viewspace-2127850/

139手机邮箱 属于什么电子邮件 账户类型,POP3还是IMAP?

139邮箱邮件接收与发送服务器地址如下:1、接收服务器地址:pop.139.com;2、发送服务器地址:smtp.139.com;139邮箱也支持“IMAP”服务协议,服务器地址如下:1、接收服务器地址:imap.139.com;2、发送服务器地址:smtp.139.com;

Nmap 扫描原理及使用方法

* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示! Nmap 扫描原理及使用方法 Namp包含四项基本功能 Nmap基本扫描方法 2.1 用法引入 2.1.1确定端口状况 确定目标主机在线情况及端口基本状况。 命令形式: namp targethost 2.1.2 完整全面的扫描 对主机进行完整全面的扫描,那么可以使用nmap内置的-A选项。使用该选项,nmap 对主机进行主机发现、端口扫描、应用程序与版本侦测、操作系统侦测及调用默认NSE脚本扫描。 1)命令形式: nmap -T4 -A -v targethost 2)参数详解: 2.2 主机发现 2.2.1 主机发现原理 主机发现发现的原理与Ping命令类似,发送探测包到目标主机,如果收到回复,说明目标主机是开启的。 1)常见主机探测方式: 2)案例: Nmap的用户位于源端,IP地址192.168.0.5,向目标主机192.168.0.3发送ICMP Echo Request。如果该请求报文没有被防火墙拦截掉,那么目标机会回复ICMP Echo Reply包回来。以此来确定目标主机是否在线。 3)默认情况下:Nmap会发送四种不同类型的数据包来探测目标主机是否在线。 依次发送四个报文探测目标机是否开启。只要收到其中一个包的回复,那就证明目标机开启。使用四种不同类型的数据包可以避免因防火墙或丢包造成的判断错误。 2.2.2 主机发现的用法 2.3 端口扫描 Namp通过探测将端口划分为6个状态: 2.3.1 端口扫描原理 2.3.1.1 TCP SYN scanning TCP SYN scanning 是Nmap默认的扫描方式,称作半开放扫描。 原理:该方式发送SYN到目标端口。 2.3.1.2 TCP connect scanning 原理:TCP connect 方式使用系统网络API connect 向目标主机的端口发起连接。 优缺点:该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑选择的方式。 2.3.1.3 TCP ACK scanning 原理:向目标主机的端口发送ACK包。 优缺点:该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况。 2.3.1.4 TCP FIN/Xmas/NULL scanning 这三种扫描方式被称为秘密扫描(Stealthy Scan) 原理:FIN扫描向目标主机的端口发送的TCP FIN包或Xmas tree包/Null包 其中Xmas tree包是指flags中FIN URG PUSH被置为1的TCP包;NULL包是指所有flags都为0的TCP包。 2.3.1.5 UDP scanning UDP扫描方式用于判断UDP端口的情况。 原理:向目标主机的UDP端口发送探测包。 2.3.2 端口扫描用法 2.3.2.1 扫描方式选项 2.3.2.2 端口参数与扫描顺序 2.4 版本侦测 2.4.1 优缺点 2.4.2 版本侦测原理 2.4.3 版本侦测用法 2.5 OS侦测 2.5.1 OS侦测原理 2.5.2 OS侦测用法 参考: https://w*.cnb***.com/tdcqma/p/5692546.html

POP3、FTP、IMAP、TELNET、MSSQL、MYSQL、WEB、IPC、RPC、DAEMON 这些是指什么

这些在百度百科里都有的。

Padmapriya人物介绍

PadmapriyaPadmapriya是一名演员,代表作品有《佛陀翠凤蝶》、《前锋》等。外文名:Padmapriya职业:演员代表作品:佛陀翠凤蝶合作人物:JayanCherian

Sigmaplot软件和Origin软件的各自优点和缺点是什么?

origin的优点:origin在数据分析方面功能更强大,从操作上来讲,Origin是更容易上手的,几乎是看看界面就能绘图(当然,这只是对于很简单的图线而言,复杂的图还是需要对Origin有一定了解才能完成的)。origin的缺点:修改个参数要点击N级选项,有时程序闪退,颜色太少。Sigmaplo的优点:画图颜色上非常灵活,选择很多,界面好看。Sigmaplo的缺点:兼容性差,导入文件时有有识别不了的情况。Origin不仅能完成简单的线图,散点图,点线图,直方图,饼图等,还能完成极坐标,雷达图,三维图。而且对于多图层的支持也是在做图时非常有利的补充。此外,Origin还能满足数据拟合的功能,内嵌了非常丰富的函数库,尤其是Origin8.0以上的版本,在数据拟合上是原有的Origin7.5的一次质的飞跃,让数据拟合变得更加容易操作,灵活性也比以往的版本更好。如果您常发表科技性文章及论文,并且有众多的数据要 变成XY,XYZ图形,那SigmaPlot可以为您节省大量的时间,不必浪费昂贵的人工去做苦力。总结如下:使用SigmaPlot画出精密的图型是件极容易的事,已有超过十万的使用者,特别设计给科学家使用。本软件允许您自行建立任何所需的图型,您可插入多条水平或垂直轴,指定Error bar的方向,让您的图更光彩耀眼,只要用SigmaPlot将图制作完成即可动态连结给其它软件展示使用。并可输出成EPS、TIFF、JPEG等图形格式,或置放于您的网站上以供浏览。非常适合网站动态显示图形使用之场所如长时间纪录之气象,温度等等场合。

mybatis-spring 中配置mapperLocations 的问题

有帮助,谢谢分享

Android开发百度地图MapStatusUpdate的问题

可能是API更新了,可以下百度地图的API DEMO自己看看就会了LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());MapStatus.Builder builder = new MapStatus.Builder();builder.target(ll).zoom(16f);baiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));

Please give me five minutes to s? the map. I think I can find the place 首字母填空s开头的

您看 search 行不行?

highcharts、highstock、highmaps三款软件有什么区别,如何收费,是否需要购买授权;

1、Highcharts系列软件商用都是需要购买授权(即付费)相关软件使用协议详见Highcharts中文官网:网页链接2、针对非商业用户可以申请非商用授权3、Highcharts,名为基础图表,支持常见的图表类型Highcharts 支持的图表类型有直线图、曲线图、区域图、柱状图、饼状图、散状点图、仪表图、气泡图、瀑布流图等多达 20 种图表,其中很多图表可以集成在同一个图形中形成混合图。3、Highstock名为股票图,实际为大数据可视化图表,(如果同时需要使用Highstock与Highcharts,刚只需购买Highstock就行。Highstock 是完全包含 Highcharts 的,是在 Highcharts 的基础上增加了更多高级功能)Highstock 是用纯 JavaScript 编写的股票图表控件,可以开发股票走势或大数据量的时间轴图表。它包含多个高级导航组件:预设置数据时间范围,日期选择器、滚动条、平移、缩放功能。4、Highmaps软件,地图Highmaps 除了根据值展示地理区域色块外,还支持线段(可以表示公路,河流等)、点(城市,兴趣点等)等其他地理元素。同时有中国地图,同时也有中国市、县、乡镇地图

求SMAP的This is love的翻译! 翻译+罗马音更好,有的追加80分!!

  This is love  这就是爱  作词:LOVE PSYCHEDELICO  作曲:LOVE PSYCHEDELICO  そうさ今の君が love  没错我爱现在的你  空に似合うのさ君のsmile  和天空相配的你的微笑  ごらん ホラ 今君の明日がbright  快看 看呀 现在有你的明天都是光明的  そうさ 泣いたりする日も baby  没错 连哭泣的日子也是 宝贝  Everything"s gonna be alright  一切都会好起来的  君が描いてるbeautiful days  你所描绘的美丽的日子  爱に出会うまで君は try  在与爱相遇前你在哭  ごらん ホラ 同じ空の下で仆も fly  快看 看呀 同一片天空下我在飞  うまくいかない日々でも baby  即使不顺心的日子也是 宝贝  Everything"s gonna be alright  一切都会好起来  仆らはまだ梦を见れるんだ  我们还能在看到梦想  手と手をとって爱に生きるんだ  手牵手在爱的世界生活  爱の呗で君を送り出すんだ  把爱的歌曲送给你  全ての愿いを君へ(everybody singin"!)  全部的梦想都传达给你(大家在唱歌)  This is love  这就是爱  ごらん ホラ 世界はloving you  快看 看呀 世界都爱着你  君の呗をうたう tonight  今晚唱着你的歌曲  爱すればまた强くなれるんだ  相爱能使人变坚强  Love love loveが舞い降りる everyday  爱 爱 爱 飞舞着 每一天  Oh 君から始まる story  Oh 因你而开始的故事  Everything"s gonna be alright  一切都会好起来  そうありのままソレも love  没错 现实中那样也是爱  君が忧う日も空は blue  你忧郁的日子天空是蓝色  ごらん ホラ 君が爱してた想い出も true  快看 看呀 你所珍惜的回忆也是真实的  そうさやりきれない日も baby  没错 连艰难的日子也是 宝贝  Everything"s gonna be alright  一起都会好起来  Everything"s gonna be alright  一起都会好起来  This is love  这就是爱  ごらん この世界で love is you  快看 在这个世界上 爱的就是你  君が出会う world tonight  和你相遇的今晚  爱すればまた优しくなれるんだ  相爱还能使人变温柔  Love love loveが溢れ出す everyday  爱 爱 爱 溢出 每一天  Oh 君が続いて story  Oh 你在延续的故事  Everything"s gonna be alright  一切都会好起来  Oh yeah  Oh 是的  Don"t stop 仆が言えるのは  我能说的是不要停下脚步  Everyday"s new day 今だけさ  每一天都是新的一天 只有现在  Life goes on 今伝えたい  现在像告诉你 生活在继续  Image この空の色と good feelin"  影像 与这片天空相应 好心情  Close to me 触れるのさ  靠近我 感触我  Open your eyes Hey 今次第に  睁开你的眼睛 Hey 就是现在  Step up そこにある  靠近那里  Message 当たりさわりない日もソレがまた  信息 没有阻碍的日子也会  Alright そばにある  没问题 在我身边  Peace and love そうそれだけさ  和睦和爱 有这个就好  This is love  这就是爱  仆らはまだ梦を见れるんだ  我们还能在看到梦想  手と手をとって爱に生きるんだ  手牵手在爱的世界生活  爱の呗で君を送り出すんだ  把爱的歌曲送给你  全ての愿いを君へ(everybody singin"!)  全部的梦想都传达给你(大家在唱歌)  This is love  这就是爱  ごらん ホラ 世界はloving you  快看 看呀 世界都在爱着你  君の呗をうたう tonight  今晚唱着你的歌曲  爱すればまた强くなれるんだ  相爱的话能使人变坚强  Love love loveが舞い降りる everyday  爱 爱 爱 每天都在飘落  This is love  这就是爱  ごらん この世界で love is you  快看 在这个时间上 爱的就是你  永远に出会う爱を for you  给你永远能相遇的爱  そうすればまた君に舞い降りる  那样做的话还会飘落  Love love loveが溢れ出す everyday  爱 爱 爱 每天都在溢出  Oh 君からはじまる story  Oh 从你开始的故事  Everything"s gonna be alright  一切都会好起来  そうさ 君が続いてくstory  没错 你在继续着故事  Everything"s gonna be alright  一切都会好起来  Oh yeah  Oh 是的  ==========================================  This Is Love  Sō sa ima no kimi ga love  Sora ni niau no sa kimi no smile  Goran hora ima kimi no asu ga bright  Sō sa nai tari suru hi mo baby  Everything"s gonna be alright  Kimi ga egai teru beautiful days  Ai ni deau made kimi wa try  Goran hora onaji sora no shita de boku mo fly  Umaku ikanai hibi demo baby  Everything"s gonna be alright  Bokura wa mada yume o mireru nda  Te to te o totte ai ni ikiru nda  Ai no uta de kimi o okuridasu nda  Subete no negai o kimi e  everybody, singin"!)  This is love  Goran hora sekai wa loving you  Kimi no uta o utau tonight  Aisureba mata tsuyoku narerunda  Love, love, love ga maioriru everyday,  Oh, kimi kara hajimaru story  Everything"s gonna be alright  Sō arinomama sore mo love  Kimi ga ureu hi mo sora wa blue  Goran hora-kun ga aishi teta omoide mo true  Sō sa yari kirenai hi mo baby  Everything"s gonna be alright  Everything"s gonna be alright  This is love  Goran hora sekai wa loving you  Kimi no uta o utau tonight  Aisureba mata tsuyoku narerunda  Love, love, love ga maioriru everyday,  Oh, kimi kara hajimaru story  Everything"s gonna be alright  Oh, yeah  Don"t stop / Boku ga ieru no wa  Everyday"s new day / Ima dake sa  Life goes on / Ima tsutaetai  Image / Kono sora no iro to good feelin"  Close to me fuureru no sa  Open your eyes / Hey, ima shidaini  Step up / soko ni aru  Message / Atarisawari nai hi mo sore ga mata  Alright / soko ni aru dream and  Peace and love sō sore dake sa  This is love  Bokura wa mada yume o mireru nda  Te to te o totte ai ni ikiru nda  Ai no uta de kimi o okuridasu nda  Subete no negai o kimi e  (everybody, singin"!)  This is love  Goran hora sekai wa loving you  Kimi no uta o utau tonight  Aisureba mata tsuyoku narerunda  Love, love, love ga maioriru everyday  This is love  Goran kono sekai de Love is you  Eien ni deau ai o for you  Sō sureba mata kimi ni mai oriru  Love, love, love afure dasu everyday  Oh,kimi kara hajimaru story  Everything"s gonna be alright  Sō sa kimi ga tsuzuite ku story  Everything"s gonna be alright  Oh, yeah  (This is love)  Everything"s gonna be alright  (This is love)  Kimi no uta o utau tonight  (This is love)  Everything"s gonna be alright, yeah  (This is love)  Come on, come on, let"s go, woo  (This is love)  Everything"s gonna be alright, yeah  (This is love)  Oh, come on baby!  (This is love)  Love is you  (This is love)

求SMAP唱的Dawn的罗马音

Smap - Dawn作词: 森元康介作曲: 森元康介编曲: 中野雄太/森元康介争うことでだけ気持ちを表せるそんな时代にarasou koto de dake kimochi wo arawaseru sonna jidai ni谁もがきっとうんざりし始めているのかなぁdaremo ga kitto unzarishi hajimete iruno kanaa信じることでさえ难しく思えて孤独を选んだshinjiru koto desae muzukashiku omoete kodoku wo eranda谁かにそっとこの胸に触れてほしいのになぁdareka ni sotto kono mune ni furete hoshiinoni naa悲しみも憎しみもこの海に流せばいいkanashimi mo nikushimi mokono umi ni nagase baiiもう一度めぐり逢えたら そのときは笑颜见せてmou ichido meguri ae tara sono toki wa egao miseteきらめきに仆らはそう 优しく包まれてkiramekini bokura wa sou yasashiku tsutsuma rete绝望も暗闇も越えてゆくzetsubou mo kurayami mo koete yukuその先に何かがそう 仆らを待っていてsono saki ni nanika ga sou bokura wo matteiteあふれだす想いを ひとつひとつ つないでくafuredasu omoi wo hitotsu hitotsu tsunaideku祈りを捧げても膝を抱えてても奇迹は起きないinori wo sasage temo hiza wo daete temo kiseki wa oki nai谁もがきっとそれぞれにもがいているのかなぁdaremo ga kitto sorezore ni mogaite iruno kanaa路上の花でさえ羡ましく思えて涙がこぼれたrojou no hana desae urayama shiku omoete namida ga koboreta谁かにそっと背中をたたいてほしいのになぁdareka ni sotto senaka wo tataite hoshii noni naa悲しみも憎しみもいつの日か流れてゆくkanashimi mo nikushimi mo itsuno hi ka nagarete yuku何もかも许し合えたら ゆっくりと手を握ってnanimo kamo yurushi ae tara yukkurito te wo nigitteきらめきに仆らはそう 优しく包まれてkiramekini bokura wa sou yasashi ku tsutsuma rete遥かなる未来へと飞んでゆくharuka naru mirai eto ton deyukuその先に何かがそう 仆らを待っていてsono saki ni nanika ga sou bokura wo matteiteあふれだす希望を ひとつひとつ かなえてくafuredasu kibou wo hitotsu hitotsu kanaetekuもし君がmoshi kimi ga欲望に荒れ狂う 浊流に饮み込まれてもyokubou ni are kuruu dakuryuu ni nomikoma retemoひとつだけhitotsudake真実はひとつだけ 辉きに导かれるままshinjitsu wa hitotsu dake kagayaki ni michibika rerumamaきらめきに仆らはそう 优しく包まれてkiramekini bokura wa sou yasashi ku tsutsuma rete绝望も暗闇も越えてゆくzetsubou mo kurayami mo koete yukuその先に何かがそう 仆らを待っていてsono sakini nanika gasou bokura wo matte iteあふれる想いを 限りない爱をafureru omoi wo kagiri nai ai woきらめきに仆らはそう 优しく包まれてkirameki ni bokura wa sou yasashiku tsutsumarete遥かなる未来へと飞んでゆくharuka naru mirai eto tonde yukuその先に何かがそう 仆らを待っていてsono saki ni nani kaga sou bokura wo matteite今 长い长い夜の终わりが近づくima nagai nagai yoru no owari ga chikazuku望采纳!

逻辑学中map,sem 这些是什么意思

搜索引擎营销:英文Search Engine Marketing ,我们通常简称为“SEM”。

WPF怎样使用RenderTargetBitmap

  RenderTargetBitmap把视觉树中的一部分光栅化以位图的形式保存,你可以利用下面的这个类以位图的形式呈现视觉元素,当然得考虑系统DPI设置及视觉元素的转换。(感谢Adam Smith在反转换这方面的建议) public class VisualUtility { public static BitmapSource CreateBitmapFromVisual(Double width, Double height, Visual visualToRender, Boolean undoTransformation) { if (visualToRender == null) { return null; } // The PixelsPerInch()方法用于读取屏幕上DPI的设置 //如果你想以特定的分辨率创建一个位图,你可以直接把某一dpiX或dpiY传参给RenderTargetBitmap构造器。 RenderTargetBitmap bmp = new RenderTargetBitmap((Int32)Math.Ceiling(width), (Int32)Math.Ceiling(height), (Double)DeviceHelper.PixelsPerInch(Orientation.Horizontal), (Double)DeviceHelper.PixelsPerInch(Orientation.Vertical), PixelFormats.Pbgra32); //如果我们想反转换,我们可以使用VisualBrush if (undoTransformation) { DrawingVisual dv = new DrawingVisual(); using (DrawingContext dc = dv.RenderOpen()) { VisualBrush vb = new VisualBrush(visualToRender); dc.DrawRectangle(vb, null, new Rect(new Point(), new Size(width, height))); } bmp.Render(dv); } else { bmp.Render(visualToRender); } return bmp; } } internal class DeviceHelper { public static Int32 PixelsPerInch(Orientation orientation) { Int32 capIndex = (orientation == Orientation.Horizontal) ? 0x58 : 90; using (DCSafeHandle handle = UnsafeNativeMethods.CreateDC("DISPLAY")) { return (handle.IsInvalid ? 0x60 : UnsafeNativeMethods.GetDeviceCaps(handle, capIndex)); } } } internal sealed class DCSafeHandle : SafeHandleZeroOrMinusOneIsInvalid { private DCSafeHandle() : base(true) { } protected override Boolean ReleaseHandle() { return UnsafeNativeMethods.DeleteDC(base.handle); } } [SuppressUnmanagedCodeSecurity] internal static class UnsafeNativeMethods { [DllImport("gdi32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern Boolean DeleteDC(IntPtr hDC); [DllImport("gdi32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern Int32 GetDeviceCaps(DCSafeHandle hDC, Int32 nIndex); [DllImport("gdi32.dll", EntryPoint = "CreateDC", CharSet = CharSet.Auto)] public static extern DCSafeHandle IntCreateDC(String lpszDriver, String lpszDeviceName, String lpszOutput, IntPtr devMode); public static DCSafeHandle CreateDC(String lpszDriver) { return UnsafeNativeMethods.IntCreateDC(lpszDriver, null, null, IntPtr.Zero); } }  之所以你需要反转换是因为如果你需要光栅化成RenderTargetBitmap的视觉目标元素已经是转换过的话(比如旋转,比例缩放,或是平移之类),这些效果会对最终产生位图有影响,这可能不是你想要的结果。“反转换”参数不仅使你能够实现反转换,而且可以得到原始的未经过转换的视觉元素呈现。  在利用RenderTargetBitmap时的一些限制你也应该清楚:首先,RenderTargetBitmap不会利用硬件加速,位图是完全在内存中产生的,并且整个过程也是在UI线程中实现的。其次,字体的显示会显示锯齿效果,而不是清晰的呈现线条样的效果。

什么是Map/Reduce-Mapreduce-about云开发

  什么是Map/Reduce,看下面的各种解释:  (1)MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框,就是mapreduce,缺一不可,也就是说,可以通过mapreduce很容易在hadoop平台上进行分布式的计算编程。  (2)Mapreduce是一种编程模型,是一种编程方法,抽象理论。  (3)下面是一个关于一个程序员是如何个妻子讲解什么是MapReduce?文章很长请耐心的看。  我问妻子:“你真的想要弄懂什么是MapReduce?” 她很坚定的回答说“是的”。 因此我问道:  我: 你是如何准备洋葱辣椒酱的?(以下并非准确食谱,请勿在家尝试)  妻子: 我会取一个洋葱,把它切碎,然后拌入盐和水,最后放进混合研磨机里研磨。这样就能得到洋葱辣椒酱了。  妻子: 但这和MapReduce有什么关系?  我: 你等一下。让我来编一个完整的情节,这样你肯定可以在15分钟内弄懂MapReduce.  妻子: 好吧。  我:现在,假设你想用薄荷、洋葱、番茄、辣椒、大蒜弄一瓶混合辣椒酱。你会怎么做呢?  妻子: 我会取薄荷叶一撮,洋葱一个,番茄一个,辣椒一根,大蒜一根,切碎后加入适量的盐和水,再放入混合研磨机里研磨,这样你就可以得到一瓶混合辣椒酱了。  我: 没错,让我们把MapReduce的概念应用到食谱上。Map和Reduce其实是两种操作,我来给你详细讲解下。  Map(映射): 把洋葱、番茄、辣椒和大蒜切碎,是各自作用在这些物体上的一个Map操作。所以你给Map一个洋葱,Map就会把洋葱切碎。 同样的,你把辣椒,大蒜和番茄一一地拿给Map,你也会得到各种碎块。 所以,当你在切像洋葱这样的蔬菜时,你执行就是一个Map操作。 Map操作适用于每一种蔬菜,它会相应地生产出一种或多种碎块,在我们的例子中生产的是蔬菜块。在Map操作中可能会出现有个洋葱坏掉了的情况,你只要把坏洋葱丢了就行了。所以,如果出现坏洋葱了,Map操作就会过滤掉坏洋葱而不会生产出任何的坏洋葱块。  Reduce(化简):在这一阶段,你将各种蔬菜碎都放入研磨机里进行研磨,你就可以得到一瓶辣椒酱了。这意味要制成一瓶辣椒酱,你得研磨所有的原料。因此,研磨机通常将map操作的蔬菜碎聚集在了一起。  妻子: 所以,这就是MapReduce?  我: 你可以说是,也可以说不是。 其实这只是MapReduce的一部分,MapReduce的强大在于分布式计算。  妻子: 分布式计算? 那是什么?请给我解释下吧。  我: 没问题。  我: 假设你参加了一个辣椒酱比赛并且你的食谱赢得了最佳辣椒酱奖。得奖之后,辣椒酱食谱大受欢迎,于是你想要开始出售自制品牌的辣椒酱。假设你每天需要生产10000瓶辣椒酱,你会怎么办呢?  妻子: 我会找一个能为我大量提供原料的供应商。  我:是的..就是那样的。那你能否独自完成制作呢?也就是说,独自将原料都切碎? 仅仅一部研磨机又是否能满足需要?而且现在,我们还需要供应不同种类的辣椒酱,像洋葱辣椒酱、青椒辣椒酱、番茄辣椒酱等等。  妻子: 当然不能了,我会雇佣更多的工人来切蔬菜。我还需要更多的研磨机,这样我就可以更快地生产辣椒酱了。  我:没错,所以现在你就不得不分配工作了,你将需要几个人一起切蔬菜。每个人都要处理满满一袋的蔬菜,而每一个人都相当于在执行一个简单的Map操作。每一个人都将不断的从袋子里拿出蔬菜来,并且每次只对一种蔬菜进行处理,也就是将它们切碎,直到袋子空了为止。  这样,当所有的工人都切完以后,工作台(每个人工作的地方)上就有了洋葱块、番茄块、和蒜蓉等等。  妻子:但是我怎么会制造出不同种类的番茄酱呢?  我:现在你会看到MapReduce遗漏的阶段—搅拌阶段。MapReduce将所有输出的蔬菜碎都搅拌在了一起,这些蔬菜碎都是在以key为基础的 map操作下产生的。搅拌将自动完成,你可以假设key是一种原料的名字,就像洋葱一样。 所以全部的洋葱keys都会搅拌在一起,并转移到研磨洋葱的研磨器里。这样,你就能得到洋葱辣椒酱了。同样地,所有的番茄也会被转移到标记着番茄的研磨器里,并制造出番茄辣椒酱。  (4)上面都是从理论上来说明什么是MapReduce,那么咱们在MapReduce产生的过程和代码的角度来理解这个问题。  如果想统计下过去10年计算机论文出现最多的几个单词,看看大家都在研究些什么,那收集好论文后,该怎么办呢?  方法一:  我可以写一个小程序,把所有论文按顺序遍历一遍,统计每一个遇到的单词的出现次数,最后就可以知道哪几个单词最热门了。 这种方法在数据集比较小时,是非常有效的,而且实现最简单,用来解决这个问题很合适。  方法二:  写一个多线程程序,并发遍历论文。  这个问题理论上是可以高度并发的,因为统计一个文件时不会影响统计另一个文件。当我们的机器是多核或者多处理器,方法二肯定比方法一高效。但是写一个多线程程序要比方法一困难多了,我们必须自己同步共享数据,比如要防止两个线程重复统计文件。  方法三:  把作业交给多个计算机去完成。  我们可以使用方法一的程序,部署到N台机器上去,然后把论文集分成N份,一台机器跑一个作业。这个方法跑得足够快,但是部署起来很麻烦,我们要人工把程序copy到别的机器,要人工把论文集分开,最痛苦的是还要把N个运行结果进行整合(当然我们也可以再写一个程序)。  方法四:  让MapReduce来帮帮我们吧!  MapReduce本质上就是方法三,但是如何拆分文件集,如何copy程序,如何整合结果这些都是框架定义好的。我们只要定义好这个任务(用户程序),其它都交给MapReduce。  map函数和reduce函数  map函数和reduce函数是交给用户实现的,这两个函数定义了任务本身。  map函数:接受一个键值对(key-value pair),产生一组中间键值对。MapReduce框架会将map函数产生的中间键值对里键相同的值传递给一个reduce函数。  reduce函数:接受一个键,以及相关的一组值,将这组值进行合并产生一组规模更小的值(通常只有一个或零个值)。  统计词频的MapReduce函数的核心代码非常简短,主要就是实现这两个函数。  map(String key, String value):  // key: document name  // value: document contents  for each word w in value:  EmitIntermediate(w, "1");  reduce(String key, Iterator values):  // key: a word  // values: a list of counts  int result = 0;  for each v in values:  result += ParseInt(v);  Emit(AsString(result));  在统计词频的例子里,map函数接受的键是文件名,值是文件的内容,map逐个遍历单词,每遇到一个单词w,就产生一个中间键值对<w, "1">,这表示单词w咱又找到了一个;MapReduce将键相同(都是单词w)的键值对传给reduce函数,这样reduce函数接受的键就是单词w,值是一串"1"(最基本的实现是这样,但可以优化),个数等于键为w的键值对的个数,然后将这些“1”累加就得到单词w的出现次数。最后这些单词的出现次数会被写到用户定义的位置,存储在底层的分布式存储系统(GFS或HDFS)。转载

关于java的容器类 list,map等的toString()方法

创建一个List list = new xxxList( );调用list.toString();实际上是调用的xxxList的toString方法,因为list在编译的时候是List在运行的时候就是xxxList,而xxxList继承了AbstractCollection,AbstractCollection重写了toString方法

yes,it’s in my toy box.where is my map什么意思

l.D 2. B 3. C 4. A

HashMap和hash有什么关系

很负责任的告诉你,HashMap是采用hash算法进行对象存储映射的一个集合对象,hash只是一种散列数算法,在一定范围内,甚至是全范围内,hash值都是唯一不重复的。

ttplayer,beoplayer,foobar2000,winmap 几款播放软件各有什么特点?

1.TTPALAYER是网络播放器,其它的都是只能播放电脑里音频的,所以功能最多,可播放本地又可以播放网络音乐.便播放本地音乐音质比不上后面三个.2.BEOPLAYER最大的特点是能消除MP3中的杂音,所以说它是最好的MP3播放器.3.FOOBAR是公认最好的音质的播放器,播放音乐原汁原味,所以成为大众追求的播放器.4.winmap音质也不错,是老牌音乐播放器了,但就是因为没有太多改进而一直停留在不上不下的地步.还有一个AIMP播放器,也是播放本地音乐的,现在很流行.

新浪邮箱怎么开启IMAP/SMTP服务

通过手机客户端绑定邮箱,绑定之前要先到web开通pop3和smtp,然后具体流程:1、自带客户端---设置---添加账户2、输入用户名(用户名@sina.com)和密码一、设置POP3/SMTP协议,意思是代收邮件致本地POP3接收邮件服务器:pop.sina.comSMTP发送邮件服务器:smtp.sina.com二、设置IMAP/SMTP协议,意思是同步服务器邮件管理IMAP接收邮件服务器:imap.sina.comSMTP发送邮件服务器:smtp.sina.com一和二两种都可以绑定,可以根据需求设置绑定。如果邮箱使用较多,建议装个专业手机QQ邮箱客户端4.0,通过浏览器或app搜索即可下载,安装好打开软件---添加邮箱选择对应服务商---输入帐 号和密码即可绑定,支持imap/pop3/exchange绑定和多帐号管理,设置简单,新邮件即时提醒,同步通讯录,集成漂流瓶让邮箱更加有趣,文件中转站,日历添加行程安排提醒,记事本,广告邮件汇聚,还有夜间免打扰设置等功能。希望对你有所帮助!

新浪邮箱到底是imap还是pop3?

是pop3 的了。设置一下 就可以了。

oemapplicationprofile可以卸载吗

不可以。根据查询ATI显卡官网得知,oemapplicationprofile是ATI显卡的驱动程序,因此oemapplicationprofile不可以卸载。卸载是就是通过工具或自带反安装程序把安装的文件在硬盘清楚,同时清除注册表内的键值。

nops 在maple中什么意思, nops是什么命令?

“nops”应是:“nope”Nope = "no"

spring-boot跟整合mapper出现如下错误,盼望高手解答

mybatis没有配置对,没有正常注入mapper的bean

the young men (is) (reading) (a map) (of) the world.改错

men 是复数,你又用is,肯定是错的啊,把men 改成man 吧

我有一根台球杆,上面写着“SNK .MAPLE hand made made in china ”这是什么牌子?大概多少钱。

snk是斯诺克的英文缩写,maple是枫木,但有个“枫叶”牌子的球杆也用这个单词,handmademadeinchina是中国手工制作的意思你的球杆估计就是枫叶牌球杆了,属于入门品牌的球杆吧,不是很贵,几百元吧,这是指成品球杆的价格虽然牌子不一定很有名,但个别定做的球杆也是挺贵的,定做球杆都有custom的字样

百度工具sitemap提交网址提示XML解析错误

那就需要看你的sitemap文件了应该是XML不符合规则导致的建议检查一下自己的XML网上有不少的格式化工具希望能帮助到你

J2EE程序代码中出现Map的地方就会有错,提示the type Map is not generic,it cannot be parameterized

你的map里装入的参数,与你定义的泛型不同吧

java map

Map<Stirng,String> map=new HashMap<String,String>();

java中定义Map 报错 求解!!!!!!!!!!

应该这样写:protected Map getKeyMethodMap(){Map<String,Object> map = new HashMap<String,Object>();map.put("login","adminLogin");return map;}Map<?,?>这里面的对象要看你自己的需求填写。

Are those English books,too?No,they sre maps,

这是要翻译么?

mapgis颜色号对照RGB值

用FME+MYFME,或者二次开发都可以批量读取对应字库里的颜色RGB代码或者实现换库功能,so,无论哪个软件制图最先要确定的就是符号库,不然后面换库就折磨人了

map并发除了加锁还有什么办法

public class HashMap<K,V>extends AbstractMap<K,V>implements Map<K,V>, Cloneable, Serializable 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 此实现假定哈希函数将元素正确分布在各桶之间,可为基本操作(get 和 put)提供稳定的性能。迭代集合视图所需的时间与 HashMap 实例的“容量”(桶的数量)及其大小(键-值映射关系数)的和成比例。所以,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。 HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量 是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子 是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,通过调用 rehash 方法将容量翻倍。 通常,默认加载因子 (.75) 在时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查询成本(在大多数 HashMap 类的操作中,包括 get 和 put 操作,都反映了这一点)。在设置初始容量时应该考虑到映射中所需的条目数及其加载因子,以便最大限度地降低 rehash 操作次数。如果初始容量大于最大条目数除以加载因子,则不会发生 rehash 操作。 如果很多映射关系要存储在 HashMap 实例中,则相对于按需执行自动的 rehash 操作以增大表的容量来说,使用足够大的初始容量创建它将使得映射关系能更有效地存储。 注意,此实现不是同步的。如果多个线程同时访问此映射,而其中至少一个线程从结构上修改了该映射,则它必须 保持外部同步。(结构上的修改是指添加或删除一个或多个映射关系的操作;仅改变与实例已经包含的键关联的值不是结构上的修改。)这一般通过对自然封装该映射的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedMap 方法来“包装”该映射。最好在创建时完成这一操作,以防止对映射进行意外的不同步访问,如下所示: Map m = Collections.synchronizedMap(new HashMap(...)); 由所有此类的“集合视图方法”所返回的迭代器都是快速失败 的:在迭代器创建之后,如果从结构上对映射进行修改,除非通过迭代器自身的 remove 或 add 方法,其他任何时间任何方式的修改,迭代器都将抛出 ConcurrentModificationException。因此,面对并发的修改,迭代器很快就会完全失败,而不冒在将来不确定的时间任意发生不确定行为的风险。 注意,迭代器的快速失败行为不能得到保证,一般来说,存在不同步的并发修改时,不可能作出任何坚决的保证。快速失败迭代器尽最大努力抛出 ConcurrentModificationException。因此,编写依赖于此异常程序的方式是错误的,正确做法是:迭代器的快速失败行为应该仅用于检测程序错误。

Java集合中List和 Map区别?

set集合中的数据没有顺序,且如果add两个一样的对象或基本类型的数据,set集合里也是只有一个,即set集合中的数据都是独一无二的;不能使用加强的for循环;list中的数据是有顺序的,可以加入多个一样的对象和基本类型的数据,可使用加强的for循环;map集合是键值对的形式进行存储,一个key,一个value。

HashMap是什么东西

java数据结构-HashMap一直以来似乎都有一个错觉,认为map跟其他的集合类一样继承自Collection,其实不然,Map和Collection在结构层次上是没有任何关系的,通过查看源码可以发现map所有操作都是基于key-value对,而不是单独的元素。下面以HashMap为例子,深入对Map的实现机制进行了解,在这个过程中,请打开jdk源码。Hash算法HashMap使用Hash算法,所以在解剖HashMap之间,需要先简单的了解Hash算法,Hash算法一般也成为散列算法,通过散列算法将任意的值转化成固定的长度输出,该输出就是散列值,这是一种压缩映射,也就是,散列值的空间远远小于输入的值空间。简单的说,hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等里面存取数据。下面我们建立一个HashMap,然后往里面放入12对key-value,这个HashMap的默认数组长度为16,我们的key分别存放在该数组的格子中,每个格子下面存放的元素又是以链表的方式存放元素。publicstaticvoidmain(String[]args){Mapmap=newHashMap();map.put("What","chenyz");map.put("You","chenyz");map.put("Don"t","chenyz");map.put("Know","chenyz");map.put("About","chenyz");map.put("Geo","chenyz");map.put("APIs","chenyz");map.put("Can"t","chenyz");map.put("Hurt","chenyz");map.put("you","chenyz");map.put("google","chenyz");map.put("map","chenyz");map.put("hello","chenyz");}当我们新添加一个元素时,首先我们通过Hash算法计算出这个元素的Hash值的hashcode,通过这个hashcode的值,我们就可以计算出这个新元素应该存放在这个hash表的哪个格子里面,如果这个格子中已经存在元素,那么就把新的元素加入到已经存在格子元素的链表中。运行上面的程序,我们对HashMap源码进行一点修改,打印出每个key对象的hash值What-->hash值:8You-->hash值:3Don"t-->hash值:7Know-->hash值:13About-->hash值:11Geo-->hash值:12APIs-->hash值:1Can"t-->hash值:7Hurt-->hash值:1you-->hash值:10google-->hash值:3map-->hash值:8hello-->hash值:0计算出来的Hash值分别代表该key应该存放在Hash表中对应数字的格子中,如果该格子已经有元素存在,那么该key就以链表的方式依次放入格子中从上表可以看出,Hash表是线性表和链表的综合所得,根据数据结构的定义,可以得出粗劣的结论,Hash算法的存取速度要比数组差一些,但是比起单纯的链表,在查找和存取方面却要好多。如果要查找一个元素时,同样的方式,通过Hash函数计算出这个元素的Hash值hashcode,然后通过这个hashcode值,直接找到跟这个hash值相对应的线性格子,进如该格子后,对这个格子存放的链表元素逐个进行比较,直到找到对应的hash值。在简单了解完Hash算法后,我们打开HashMap源码初始化HashMap下面我们看看Mapmap=newHashMap();这段代码究竟做了什么,发生了什么数据结构的变化。HashMap中几个重要的属性transientEntry[]table;用来保存key-value的对象Entry数组,也就是Hash表transientintsize;返回HashMap的键值对个数finalfloatloadFactor;负载因子,用来决定Entry数组是否扩容的因子,HashMap默认是0.75fintthreshold;重构因子,(capacity*loadfactor)负载因子与Entry[]数组容积的乘值publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,Serializable{intthreshold;finalfloatloadFactor;transientEntry[]table;staticfinalfloatDEFAULT_LOAD_FACTOR=0.75f;staticfinalintDEFAULT_INITIAL_CAPACITY=16;publicHashMap(intinitialCapacity,floatloadFactor){if(initialCapacity<0)thrownewIllegalArgumentException("Illegalinitialcapacity:"+initialCapacity);if(initialCapacity>MAXIMUM_CAPACITY)initialCapacity=MAXIMUM_CAPACITY;if(loadFactor<=0||Float.isNaN(loadFactor))thrownewIllegalArgumentException("Illegalloadfactor:"+loadFactor);//Findapowerof2>=initialCapacityintcapacity=1;while(capacity<initialCapacity)capacity<<=1;this.loadFactor=loadFactor;threshold=(int)(capacity*loadFactor);table=newEntry[capacity];init();}以publicHashMap(intinitialCapacity,floatloadFactor)构造函数为例,另外两个构造函数实际上也是以同种方式来构建HashMap.首先是要确定hashMap的初始化的长度,这里使用的策略是循环查出一个大于initialCapacity的2的次方的数,例如initialCapacity的值是10,那么大于10的数是2的4次方,也就是16,capacity的值被赋予了16,那么实际上table数组的长度是16,之所以采用这样的策略来构建Hash表的长度,是因为2的次方运算对于计算机来说是有相当的效率。loadFactor,被称为负载因子,HashMap的默认负载因子是0.75fthreshold,接下来是重构因子,由负载因子和容量的乘机组成,它表示当HashMap元素被存放了多少个之后,需要对HashMap进行重构。通过这一系列的计算和定义后,初始化Entry[]table;put(key,value)接下来看一对key-value是如何被存放到HashMap中:put(key,value)publicVput(Kkey,Vvalue){if(key==null)returnputForNullKey(value);inthash=hash(key.hashCode());inti=indexFor(hash,table.length);System.out.println(key+"-->hash值:"+i);//这就是刚才程序打印出来的key对应hash值for(Entry<K,V>e=table[i];e!=null;e=e.next){Objectk;if(e.hash==hash&&((k=e.key)==key||key.equals(k))){VoldValue=e.value;e.value=value;e.recordAccess(this);returnoldValue;}}modCount++;addEntry(hash,key,value,i);returnnull;}staticinthash(inth){h^=(h>>>20)^(h>>>12);returnh^(h>>>7)^(h>>>4);}staticintindexFor(inth,intlength){returnh&(length-1);}这里是整个hash的关键,请打开源码查看一步一步查看。hash(key.hashCode())计算出key的hash码//对于hash()的算法,这里有一篇分析很透彻的文章<HashMaphash方法分析>indexFor(hash,table.length)通过一个与算法计算出来,该key应在存放在Hash表的哪个格子中。for(Entry<K,V>e=table[i];e!=null;e=e.next)然后再遍历table[i]格中的链表,判断是否已经存在一样的key,如果存在一样的key值,那么就用新的value覆盖旧的value,并把旧的value值返回。addEntry(hash,key,value,i)如果经过遍历链表没有发现同样的key,那么进行addEntry函数的操作,增加当前key到hash表中的第i个格子中的链表中voidaddEntry(inthash,Kkey,Vvalue,intbucketIndex){Entry<K,V>e=table[bucketIndex];table[bucketIndex]=newEntry<K,V>(hash,key,value,e);if(size++>=threshold)resize(2*table.length);}Entry<K,V>e=table[bucketIndex];创建一个Entry对象来存放键值(ps:Entry对象是一个链表对象)table[bucketIndex]=newEntry<K,V>(hash,key,value,e);将Entry对象添加到链表中if(size++>=threshold)resize(2*table.length);最后将size进行自增,判断size值是否大于重构因子,如果大于那么就是用resize进行扩容重构。voidresize(intnewCapacity){Entry[]oldTable=table;intoldCapacity=oldTable.length;if(oldCapacity==MAXIMUM_CAPACITY){threshold=Integer.MAX_VALUE;return;}Entry[]newTable=newEntry[newCapacity];transfer(newTable);table=newTable;threshold=(int)(newCapacity*loadFactor);}这里为什么是否需要扩容重构,其实是涉及到负载因子的性能问题loadFactor负载因子上面说过loadFactor是一个hashMap的决定性属性,HashSet和HashMap的默认负载因子都是0.75,它表示,如果哈希表的容量超过3/4时,将自动成倍的增加哈希表的容量,这个值是权衡了时间和空间的成本,如果负载因子较高,虽然会减少对内存空间的需求,但也会增加查找数据的时间开销,无论是put()和get()都涉及到对数据进行查找的动作,所以负载因子是不适宜设置过高get(key)接下来看看get(key)做了什么publicVget(Objectkey){if(key==null)returngetForNullKey();inthash=hash(key.hashCode());for(Entry<K,V>e=table[indexFor(hash,table.length)];e!=null;e=e.next){Objectk;if(e.hash==hash&&((k=e.key)==key||key.equals(k)))returne.value;}returnnull;}这些动作似乎是跟put(key,value)相识,通过hash算法获取key的hash码,再通过indexFor定位出该key存在于table的哪一个下表,获取该下标然后对下标中的链表进行遍历比对,如果有符合就直接返回该key的value值。keySet()这里还涉及另一个问题,上面说了HashMap是跟set没有任何亲属关系,但map也一样实现了keySet接口,下面谱析一下keySet在hashMap中是如何实现的,这里给出部分代码,请结合源码查看publicKnext(){returnnextEntry().getKey();}finalEntry<K,V>nextEntry(){if(modCount!=expectedModCount)thrownewConcurrentModificationException();Entry<K,V>e=next;if(e==null)thrownewNoSuchElementException();if((next=e.next)==null){Entry[]t=table;while(index<t.length&&(next=t[index++])==null);}current=e;returne;}代码很简单,就是对每个格子里面的链表进行遍历,也正是这个原因,当我们依次将key值put进hashMap中,但在使用map.entrySet().iterator()进行遍历时候却不是put时候的顺序。扩容在前面说到put函数的时候,已经提过了扩容的问题if(size++>=threshold)resize(2*table.length);这里一个是否扩容的判断,当数据达到了threshold所谓的重构因子,而不是HashMap的最大容量,就进行扩容。voidresize(intnewCapacity){Entry[]oldTable=table;intoldCapacity=oldTable.length;if(oldCapacity==MAXIMUM_CAPACITY){threshold=Integer.MAX_VALUE;return;}Entry[]newTable=newEntry[newCapacity];transfer(newTable);table=newTable;threshold=(int)(newCapacity*loadFactor);}voidtransfer(Entry[]newTable){Entry[]src=table;intnewCapacity=newTable.length;for(intj=0;j<src.length;j++){Entry<K,V>e=src[j];if(e!=null){src[j]=null;do{Entry<K,V>next=e.next;inti=indexFor(e.hash,newCapacity);e.next=newTable[i];newTable[i]=e;e=next;}while(e!=null);}}}transfer方法实际上是将所有的元素重新进行一些hash,这是因为容量变化了,每个元素相对应的hash值也会不一样。使用HashMap1.不要再高并发中使用HashMap,HashMap是线程不安全,如果被多个线程共享之后,将可能发生不可预知的问题。2.如果数据大小事固定的,最好在初始化的时候就给HashMap一个合理的容量值,如果使用newHashMap()默认构造函数,重构因子的值是16*0.75=12,当HashMap的容量超过了12后,就会进行一系列的扩容运算,重建一个原来成倍的数组,并且对原来存在的元素进行重新的hash运算,如果你的数据是有成千上万的,那么你的成千上万的数据也要跟这你的扩容不断的hash,这将产生高额的内存和cpu的大量开销。当然啦,HashMap的函数还有很多,不过都是基于table的链表进行操作,当然也就是hash算法,Map&hashMap在平时我们的应用非常多,最重要的是我们要对每句代码中每块数据结构变化心中有数。上面主要是参考了jdk源码,数据结构和一些相关资料本着好记性不如烂博客的精神记录下来,希望朋友们如果发觉哪里不对请指出来,虚心请教

为什么set,list,map不实现cloneable和serializable接口

集合类接口指定了一组叫做元素的对象。集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序。有的集合类允许重复的键,有些不允许。http://www.baidu.com/s?wd=52035271515
 首页 上一页  1 2 3 4 5 6 7 8 9  下一页  尾页