了解下JAVA的JAVA进步教程(14)-熟悉Map之LinkedHashMap
最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。Java基本及进步教程目次
Map接口的哈希表和链接列表完成,具有可预知的迭代按次。此完成与HashMap的分歧的地方在于,后者保护着一个运转于一切条目标两重链接列表。此链接列表界说了迭代按次,该迭代按次一般就是将键拔出到映照中的按次(拔出按次)。注重,假如在映照中从头拔出键,则拔出按次不受影响。(假如在挪用m.put(k,v)前m.containsKey(k)前往了true,则挪用时会将键k从头拔出到映照m中。)
此完成可让客户制止未指定的、由HashMap(及Hashtable)所供应的一般为乱七八糟的排序事情,同时无需增添与TreeMap相干的本钱。利用它能够天生一个与本来按次不异的映照正本,而与原映照的完成有关:
1.packagecollection;
2.
3.importjava.util.HashMap;
4.importjava.util.Iterator;
5.importjava.util.LinkedHashMap;
6.importjava.util.Map;
7.
8./**
9.*老紫竹JAVA进步教程(14)-熟悉Map之LinkedHashMap。
10.*
11.*这个类承继自HashMap,具有其全体特征.
12.*同时外部保护着一个一切条目标两重链接,具有可预知的迭代按次。
13.*默许依照拔出的按次举行显现.
14.*反复拔出一个Key的数据,不会影响到利用的前后按次。
15.*此类制止了HashMap的乱七八糟的利用按次,同时又制止了TreeMap的分外本钱.
16.*
17.*@author老紫竹JAVA世纪网(java2000.net)
18.*
19.*/
20.publicclassLession14LinkedHashMap{
21.publicstaticvoidmain(String[]args){
22.//分离利用2个类,举行不异的数据测试
23.//能够看到,HashMap的按次是不成展望的
24.//而LinkedHashMap的按次严厉依照拔出按次
25.
26.//102=>102;100=>100;101=>101;98=>98;99=>99;
27.testMap(newHashMap());
28.//98=>98;99=>99;100=>100;101=>101;102=>102;
29.testMap(newLinkedHashMap());
30.
31.//删除数据后,LinkedHashMap会将数据放到开端最初的地位
32.//而HashMap大概会利用前一个空白的地位
33.}
34.
35.publicstaticvoidtestMap(Mapmap){
36.for(inti=98;i<=102;i++){
37.map.put(i,i);
38.}
39.showMap(map);
40.//实验反复拔出数据
41.map.put(100,100);
42.showMap(map);
43.
44.//删除数据,并再次拔出
45.map.remove(100);
46.map.put(100,100);
47.showMap(map);
48.}
49.
50.publicstaticvoidshowMap(Mapmap){
51.//迭代Key的操纵
52.Iteratorit=map.keySet().iterator();
53.Objectkey;
54.while(it.hasNext()){
55.key=it.next();
56.System.out.print(key+"=>"+map.get(key)+";");
57.}
58.System.out.println();
59.}
60.}运转效果:
102=>102;100=>100;101=>101;98=>98;99=>99;
102=>102;100=>100;101=>101;98=>98;99=>99;
102=>102;100=>100;101=>101;98=>98;99=>99;
98=>98;99=>99;100=>100;101=>101;102=>102;
98=>98;99=>99;100=>100;101=>101;102=>102;
98=>98;99=>99;101=>101;102=>102;100=>100;
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
页:
[1]