电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

java的Collections框架的理解

瀏覽:7日期:2024-06-15 13:28:36
內(nèi)容: 在Java 2的Collections框架中,主要包括兩個接口及其擴展和實現(xiàn)類:Collection接口和Map接口。兩者的區(qū)別在于前者存儲一組對象,后者則存儲一些關(guān)鍵字/值對。public interface java.util.Map { //Altering Methods public Object put(Object key, Object value); public Object remove(Object key); public void putAll(java.util.Map); public void clear(); //Querying Methods public Object get(Object key); public int size(); public boolean isEmpty(); public boolean containsKey(Object); public boolean containsValue(Object); public boolean equals(Object); //Viewing Methods public java.util.Set keySet(); //Gets keys public java.util.Collection values(); //Gets values public java.util.Set entrySet(); //Gets mappings public static interface java.util.Map.Entry { //a map-entry (single key/value pair) public Object getKey(); //returns current entry key public Object getValue(); //returns current entry value public Object setValue(Object value); public boolean equals(Object); public int hashCode(); }}Map接口提供了方便易用的方法,通過這些方法可以查詢、查看、修改當(dāng)前Map的內(nèi)容。注意對于Map接口的keySet()方法返回一個Set,Set是Collection接口的一個擴展,包含不重復(fù)的一組對象。因為Map中的key是不可重復(fù)的,所以得到所有key的keySet()方法返回一個Set對象。Map接口本身還包含了一個Map.Entry接口,一個Map.Entry就是Map中的一個關(guān)鍵字/值對。Map接口中的entrySet()方法就返回了一個集合對象,其中每一個元素都實現(xiàn)了Map.Entry接口。Map接口的get(Object key),put(Object key,Object value),和remove(Object key)方法都有同一個問題。他們的返回類型都是Object,當(dāng)返回null時,可以猜測為調(diào)用那個方法前那個key不存在。但是只有在null不允許作為Map的值時可以這樣猜測。所有Map接口的通用實現(xiàn)都允許null作為key或者value,這就說當(dāng)返回一個null值,就可以意味著很多事情。只是因為通用實現(xiàn)允許null值,你不能下那個映射有null值的結(jié)論。如果你確知沒有null值,那返回null值就意味著調(diào)用那個方法前,映射里并沒有那個鍵。否則,你必須調(diào)用containsKey(Object key)來看看那個Key是否存在。Hashtablejava.util.Hashtable實現(xiàn)了Map接口,在Hashtable中使用key對象的hashCode()作為對應(yīng)的對象的相對存儲地址,以便實現(xiàn)根據(jù)關(guān)鍵字快速查找對象的功能。所以只有一個實現(xiàn)了hashCode()和equals()方法的對象才可作為Hashtable的key。null值不能作為關(guān)鍵字或值。public class java.util.Hashtable extends Dictionary implements Cloneable, Map, Serializable { //Hashtable constructors //construct a default Hashtable with default capacity and load of 0.75 public Hashtable(); //construct a Hashtable with passed capacity and default load of 0.75 public Hashtable (int initialCapacity); //construct Hashtable with passed capacity and load public Hashtable(int initialCapacity, float load); //construct Hashtable with passed mapping public Hashtable(Map); //Hashtable specific methods //checks if Object is in Hashtable public boolean contains(Object); //returns Enumeration of elements in Hashtable public Enumeration elements(); //returns Enumeration of keys in hashtable public Enumeration keys(); //creates shallow copy of Hashtable(structure copied, but not key/values) public Object clone(); //prints out key/value pairs of Hashtable elements public String toString(); //reorganizes all elements in Hashtable, and increases Hashtable capacity protected void rehash(); //get Value from passed in key public Object get(Object); //insert key/value pair public Object put(Object key, Object value); }Hashtable是Java 2集合框架推出之前的一個老的工具類,在新的Java 2集合框架下,已經(jīng)被HashMap取代。Hashtable和HashMap的區(qū)別主要是前者是同步的,后者是快速失敗機制保證不會出現(xiàn)多線程并發(fā)錯誤(Fast-Fail)。在初始化一個Hashtable時,可以指定兩個參數(shù):初始容量、負(fù)荷,這兩個參數(shù)強烈的影響著Hashtable的性能。容量是指對象的個數(shù),負(fù)荷是指散列表中的實際存儲的對象個數(shù)和容量的比率。如果初始容量太小,那么Hashtable需要不斷的擴容并rehash(),而這是很耗時的;如果初始容量太大,又會造成空間的浪費。負(fù)荷則相反,負(fù)荷太小會造成空間浪費,負(fù)荷太大又會耗時(因為這會造成較多的關(guān)鍵字的散列碼重復(fù),Hashtable使用一個鏈接表來存儲這些重復(fù)散列碼的對象)。容量的缺省值是11,負(fù)荷的缺省值是0.75,一般情況下你都可以使用缺省值來生成一個Hashtable。另外,在Hashtable中的大部分的方法都是同步的。HashMapHashMap基本實現(xiàn)了Map接口的全部方法。方法的簽名大家看上面的Map接口。這兒主要說說幾個Map接口中的方法。按照集合框架的實現(xiàn),哈希表是單鏈表作為元素的數(shù)組,有著同樣索引值的兩個或更多入口被一起鏈結(jié)到單鏈表中。哈希表聲明如下: private Entry[] table;組件類型Entry是Map.Entry接口的實現(xiàn),Map.Entry聲明于Map接口內(nèi)。下邊是Map.Entry接口的簡化實現(xiàn): private static class Entry implements Map.Entry{ int hashCode; Object key; Object value; Entry next; Entry(int hashCode,Object key,Object value,Entry next){ This.hashCode=hashCode; This.key=key; This.value=value; This.next=next; } public Object getKey(){ return key; } public Object getValue(){ return value; } public Object setValue(Object value){ Object oldValue=this.value; This.value=value; Return oldValue; }}SortedMap是Map接口的子接口,SortedMap的標(biāo)準(zhǔn)實現(xiàn)是TreeMap,實現(xiàn)了一個排序的Map。這里翻譯的是對《Java 規(guī)則》(Java Rules)中對Java2的集合框架的研究。詳細(xì)可以參考Java2源碼中的集合實現(xiàn)代碼和API doc。 Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 四探针电阻率测试仪-振实密度仪-粉末流动性测定仪-宁波瑞柯微智能 | 高低温试验房-深圳高低温湿热箱-小型高低温冲击试验箱-爱佩试验设备 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 东莞市天进机械有限公司-钉箱机-粘箱机-糊箱机-打钉机认准东莞天进机械-厂家直供更放心! | 美缝剂_美缝剂厂家_美缝剂加盟-地老板高端瓷砖美缝剂 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 沈阳激光机-沈阳喷码机-沈阳光纤激光打标机-沈阳co2激光打标机 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 杭州双螺杆挤出机-百科| 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 四川成都干燥设备_回转筒干燥机_脉冲除尘器_输送设备_热风炉_成都川工星科机电设备有限公司 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 英国公司注册-新加坡公司注册-香港公司开户-离岸公司账户-杭州商标注册-杭州优创企业 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 锯边机,自动锯边机,双面涂胶机-建业顺达机械有限公司 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 智能监控-安防监控-监控系统安装-弱电工程公司_成都万全电子 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 新疆乌鲁木齐网站建设-乌鲁木齐网站制作设计-新疆远璨网络 | Win10系统下载_32位/64位系统/专业版/纯净版下载 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 烘箱-工业烘箱-工业电炉-实验室干燥箱 - 苏州华洁烘箱制造有限公司 | 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 威海防火彩钢板,威海岩棉复合板,威海彩钢瓦-文登区九龙岩棉复合板厂 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 德国GMN轴承,GMN角接触球轴承,GMN单向轴承,GMN油封,GMN非接触式密封 | 全自动包装机_灌装机生产厂家-迈驰包装设备有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 重庆监控_电子围栏设备安装公司_门禁停车场管理系统-劲浪科技公司 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 |