|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。
Map接口
Map是一个将键映照为值的对象。一个映照不克不及包括反复键:每一个键最多能映照一个值。Map接口以下所示:
publicinterfaceMap{
//BasicOperations
Objectput(Objectkey,Objectvalue);
Objectget(Objectkey);
Objectremove(Objectkey);
booleancontainsKey(Objectkey);
booleancontainsValue(Objectvalue);
intsize();
booleanisEmpty();
//BulkOperations
voidputAll(Mapt);
voidclear();
//CollectionViews
publicSetkeySet();
publicCollectionvalues();
publicSetentrySet();
//InterfaceforentrySetelement
publicinterfaceEntry{
ObjectgetKey();
ObjectgetValue();
ObjectsetValue(Objectvalue);
}
}
JDK包括两个新的通用Map完成,一个是HashMap,它将它的项存储在一个哈希表中,是一种最好的完成;另外一个是TreeMap,它将它的项存储在一个红-黑树上,它可包管迭代的按次。别的,Hashtable已被改善以完成Map。
与哈希表的对照
假如你利用过Hashtable,你应当已熟习了Map的一样平常作风(固然Map是一个接口,而Hashtable是一个详细的完成)。以下是它们的次要区分:
Map供应Collection视图,作为Enumeration对象的替换间接撑持迭代历程。Collection视图极年夜地进步了接口的可表达性,正如后续课程将讲到的。
Map同意你在键、值或键-值对长进行迭代;Hashtable则不供应第三个选项。
Map供应了在迭代过程当中删除项的平安路子;Hashtable则不克不及。
进一步讲,Map修补了Hashtable接口上的某些小缺点。Hashtable具有一个称作contains的办法,假如Hashtable包括一个给定值,它将前往true。从它的名字上了解,你大概希冀假如Hashtable包括一个给定的key,这个办法也会前往一个true,由于键是一个Hashtable的次要存取机制。Map接口经由过程将这个办法从头定名为containsValue,从而打消了引发凌乱的来历;同时也改良了接口的分歧性:containsValue与containsKey可很好地对应并行。
基础操纵
基础操纵(put,get,remove,containsKey,containsValue,s,a和isEmpty)的功效与它们在Hashtable中的对等物十分类似。上面的复杂程序针对参数列表中的辞汇天生一个频次表。频次表将每一个词和它在参数列表中所呈现的次数相映照。
importjava.util.*;
publicclassFreq{privatestaticfinalIntegerONE=newInteger(1);
publicstaticvoidmain(Stringargs[]){
Mapm=newHashMap();
//Initializefrequencytablefromcommandline
for(inti=0;i$#@60;args.length;i++){
Integerfreq=(Integer)m.get(args[i]);
m.put(args[i],(freq==null?ONE:
newInteger(freq.intValue()+1)));
}
System.out.println(m.size()+"distinctwordsdetected:");
System.out.println(m);
}
}
<p>
多谢指点,其实我对.net网页编程和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。 |
|