当前位置: 首页 > news >正文

石油网站编辑怎么做vi设计一套多少钱

石油网站编辑怎么做,vi设计一套多少钱,网站目录文件夹,广告设计公司简介范文重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的#xff0c;而在Map中我们通过对象来对对象进行索引#xff0c;用来索引的对象叫做key#xff0c;其对应的对象叫做value。在下文中会有例子具体说明。 再来看看HashMap和TreeMap有什么…重点介绍HashMap。首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的而在Map中我们通过对象来对对象进行索引用来索引的对象叫做key其对应的对象叫做value。在下文中会有例子具体说明。   再来看看HashMap和TreeMap有什么区别。HashMap通过hashcode对其内容进行快速查找而TreeMap中所有的元素都保持着某种固定的顺序如果你需要得到一个有序的结果你就应该使用TreeMapHashMap中元素的排列顺序是不固定的。 import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.Iterator; import java.util.Hashtable; import java.util.TreeMap; class HashMaps { public static void main(String[] args) { Map mapnew HashMap(); map.put(a, aaa); map.put(b, bbb); map.put(c, ccc); map.put(d, ddd); Iterator iterator map.keySet().iterator(); while (iterator.hasNext()) { Object key iterator.next(); System.out.println(map.get(key) is :map.get(key)); } Hashtable tabnew Hashtable(); tab.put(a, aaa); tab.put(b, bbb); tab.put(c, ccc); tab.put(d, ddd); Iterator iterator_1 tab.keySet().iterator(); while (iterator_1.hasNext()) { Object key iterator_1.next(); System.out.println(tab.get(key) is :tab.get(key)); } TreeMap tmpnew TreeMap(); tmp.put(a, aaa); tmp.put(b, bbb); tmp.put(c, ccc); tmp.put(d, ddd); Iterator iterator_2 tmp.keySet().iterator(); while (iterator_2.hasNext()) { Object key iterator_2.next(); System.out.println(tmp.get(key) is :tmp.get(key)); } } } 执行完后果然是这样的hashmap是没有顺序的而treemap则是按顺序排列的哦 下面就要进入本文的主题了。先举个例子说明一下怎样使用HashMap: import java.util.*; public class Exp1 { public static void main(String[] args){ HashMap h1new HashMap(); Random r1new Random(); for(int i0;i1000;i){ Integer tnew Integer(r1.nextInt(20)); if(h1.containsKey(t)) ((Ctime)h1.get(t)).count; else h1.put(t, new Ctime()); } System.out.println(h1); } } class Ctime{ int count1; public String toString(){ return Integer.toString(count); } } 在HashMap中通过get()来获取value通过put()来插入valueContainsKey()则用来检验对象是否已经存在。可以看出和ArrayList的操作相比HashMap除了通过key索引其内容之外别的方面差异并不大。    前面介绍了HashMap是基于HashCode的在所有对象的超类Object中有一个HashCode()方法但是它和equals方法一样并不能适用于所有的情况这样我们就需要重写自己的HashCode()方法。下面就举这样一个例子 import java.util.*; public class Exp2 { public static void main(String[] args){ HashMap h2new HashMap(); for(int i0;i10;i) h2.put(new Element(i), new Figureout()); System.out.println(h2:); System.out.println(Get the result for Element:); Element testnew Element(5); if(h2.containsKey(test)) System.out.println((Figureout)h2.get(test)); else System.out.println(Not found); } } class Element{ int number; public Element(int n){ numbern; } } class Figureout{ Random rnew Random(); boolean possibler.nextDouble()0.5; public String toString(){ if(possible) return OK!; else return Impossible!; } } 在这个例子中Element用来索引对象Figureout,也即Element为keyFigureout为value。在Figureout中随机生成一个浮点数如果它比0.5大打印OK!否则打印Impossible!。之后查看Element(5)对应的Figureout结果如何。 结果却发现无论你运行多少次得到的结果都是Not found。也就是说索引Element(5)并不在HashMap中。这怎么可能呢 原因得慢慢来说Element的HashCode方法继承自Object而Object中的HashCode方法返回的HashCode对应于当前的地址也就是说对于不同的对象即使它们的内容完全相同用HashCode返回的值也会不同。这样实际上违背了我们的意图。因为我们在使用HashMap时希望利用相同内容的对象索引得到相同的目标对象这就需要HashCode()在此时能够返回相同的值。在上面的例子中我们期望new Element(i) (i5)与 Element testnew Element(5)是相同的而实际上这是两个不同的对象尽管它们的内容相同但它们在内存中的地址不同。因此很自然的上面的程序得不到我们设想的结果。下面对Element类更改如下 class Element{ int number; public Element(int n){ numbern; } public int hashCode(){ return number; } public boolean equals(Object o){ return (o instanceof Element) (number((Element)o).number); } }    在这里Element覆盖了Object中的hashCode()和equals()方法。覆盖hashCode()使其以number的值作为hashcode返回这样对于相同内容的对象来说它们的hashcode也就相同了。而覆盖equals()是为了在HashMap判断两个key是否相等时使结果有意义有关重写equals()的内容可以参考我的另一篇文章《重新编写Object类中的方法 》。修改后的程序运行结果如下 h2:Get the result for Element:Impossible! 请记住如果你想有效的使用HashMap你就必须重写在其的HashCode()。还有两条重写HashCode()的原则    不必对每个不同的对象都产生一个唯一的hashcode只要你的HashCode方法使get()能够得到put()放进去的内容就可以了。即不为一原则。 生成hashcode的算法尽量使hashcode的值分散一些不要很多hashcode都集中在一个范围内这样有利于提高HashMap的性能。即分散原则。  本文转自http://blog.csdn.net/scy411082514/article/details/9223807转载于:https://www.cnblogs.com/panxuejun/p/5958875.html
http://www.sadfv.cn/news/53606/

相关文章:

  • 网站空间是先备案后买wordpress 播放大视频
  • 无水印效果图网站云南云岭高速建设集团网站
  • 做网站怎么选择服务器自适应主题 wordpress
  • wordpress x站填写网站信息
  • 福州网站制作策划网站管理系统怎么做
  • 吉林市建设工程档案馆网站wordpress影视主题52破解
  • 手机怎么打开微信网站嘉兴做网站设计
  • 江苏省建设厅网站证件查询网络行业有哪些
  • 怎样做企业的网站首页怎么做英文的网站首页
  • wordpress当下载站怎么做劳务公司网站
  • 邯郸网站建设咨询安联网络平江网站建设
  • APP手机端电子商务网站建设网站降权表现
  • 旅游网站建设功能意义设计感的网站
  • 网站升级改版需要几天ppt成品免费下载的网站
  • wordpress 连接后台郴州网站优化
  • php网站开发价格蘑菇丁毕业设计网站
  • 静态网站是什么样东莞营销型网站开发
  • 遨翔网站建设wordpress网站生成app
  • 网站推广计划书范文500字泰州整站优化
  • 做网站郑州网站运营主要是做什么
  • js网站源码下载网站空间格式asp
  • 河北建设厅安监站官方网站页框 wordpress插件
  • 济南网站建设小程序开发怎样开始学做自媒体
  • 做一份seo网站诊断wordpress苏醒主题
  • 上云网站做等保人力资源公司加盟合作
  • 网站开发 理念怎么写佛山新网站制作
  • 网站全站开发长春网站建设致电吉网传媒优
  • 网站建设的栏目策划怎么做好网络营销推广
  • 怎么创建网站根目录浏览器直接进入网站的注意事项
  • 网站开发和app开发的区别宁波制作网站企业有哪些