`

如何取出Map中的key和value--Map.Entry 类使用简介

    博客分类:
  • Java
 
阅读更多

你是否已经对每次从Map中取得关键字然后再取得相应的值感觉厌倦?使用Map.Entry类,你可以得到在同一时间得到所有的信息。标准的Map访问方法如下:

Set keys = map.keySet( );
if(keys != null) {
Iterator iterator = keys.iterator( );
while(iterator.hasNext( )) {
Object key = iterator.next( );
Object value = map.get(key);
;....
;}
}

然后,这个方法有一个问题。从Map中取得关键字之后,我们必须每次重复返回到Map中取得相对的值,这是很繁琐和费时的。


幸运的是,这里有一个更加简单的途径。Map类提供了一个称为entrySet()的方法,这个方法返回一个Map.Entry实例化后的对象集。 接着,Map.Entry类提供了一个getKey()方法和一个getValue()方法,因此,上面的代码可以被组织得更符合逻辑。举例如下:



Set entries = map.entrySet( );
if(entries != null) {
Iterator iterator = entries.iterator( );
while(iterator.hasNext( )) {
Map.Entry entry =iterator.next( );
Object key = entry.getKey( );
Object value = entry.getValue();

;....
}
}

尽管增加了一行代码,我们却省略了许多对Map不必要的“get”调用。同时,提供给开发人员一个同时保持了关键字和其对应的值的类。Map.Entry同时也提供了一个setValue()方法,程序员可以使用它修改map里面的值。

Hashtable内部排列的方式是散列排布,所以当输出信息时会是无序的。为了能保证输出的数据按照顺序排列,不要渴望用java自带的函数来对 Hashtable对象进行调整处理。当我们获取Hashtable里的KEY和VALUE时,一般都运行了Map.Entry类来转换,好,现在就用这 个类来作文章,我具体写了一个方法。

 

代码:

 

/**
* 方法名称:getSortedHashtable
* 参数:Hashtable h 引入被处理的散列表
* 描述:将引入的hashtable.entrySet进行排序,并返回
*/
public static Map.Entry[] getSortedHashtable(Hashtable h){

 

   Set set = h.entrySet();
  
   Map.Entry[] entries = (Map.Entry[])set.toArray(new Map.Entry[set.size()]);
   
   Arrays.sort(entries,new Comparator(){

 

    public int compare(Object arg0, Object arg1) {
     Object key1 = ((Map.Entry)arg0).getKey();
     Object key2 = ((Map.Entry)arg1).getKey();
     return ((Comparable)key1).compareTo(key2);
    }
   
   });
  
   return entries;
}

 

调用这个方法:

 

Map.Entry[] set = getSortedHashtable(t);
    
   //perportyTable
   for (int i=0;i<set.length;i++){

 

    System.out.println(set[i].getKey().toString());
   
     System.out.println(set[i].getValue().toString());

   }

分享到:
评论

相关推荐

    只读Key-Value存储系统PalDB.zip

    PalDB 存储是单个二进制文件,只能编写一次,可以直接在应用中使用。PalDB 的 JAR 包只有 110K,只有单个依赖 (snappy, which isn't mandatory),可以跟一些配置参数一起使用。 因为 PalDB 是只读的存储系统,只...

    java中Map集合的常用遍历方法及HashMap的应用实例

    放着的就是Map中的某一对key-value; 2、遍历Map.keySet():它是Map中key值的集合,我们可以通过遍历这个集合来 读取Map中的元素; 3、遍历Map.values():它是Map中value的集合,我们可以直接通过这个集合遍历 ...

    grub4dos-V0.4.6a-2017-02-04更新

    例如:"七" 使用不同字型,将 .hex 文件中的 unicode 码 “4e03” 修改为 “0080”, 将菜单中的 "七" 修改为 “\X0080”。 2016-03-23(yaya) 增强 echo 函数功能。 例如:echo -e \x18 显示 UTF-8 字符 0x...

    Android 对Map按key和value分别排序的实例

    Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射...

    java遍历特例

    返回的 set 中的每个元素都是一个 Map.Entry 类型。 private Hashtable, String&gt; emails = new Hashtable, String&gt;(); 另外 我们可以先把hashMap 转为集合Collection,再迭代输出,不过得到的对象 //方法一: ...

    EurekaLog_7.5.0.0_Enterprise

    1)....Added: HKCU\Software\EurekaLab\Viewer\4.0\UI\Statuses registry key to allow status customizations in Viewer 2)....Added: "Disable hang detection under debugger" option 3)....Fixed: Wrong button ...

    springmvcmybatis

    &lt;entry key="write" value=",add,insert,create,update,delete,remove," /&gt; &lt;/map&gt; &lt;!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --&gt; &lt;bean id="sqlSessionFactory" class="org....

    MATLAB哈希映射实现_hashmap_algorithm

    set(key,value) -&gt; set new element in map by key and value delete(key) -&gt; delete entry by key has(key) -&gt; Returns true/false based on whether the map contains the key keys() -&gt; returns all keys of map ...

    pageDate封装参数,不用实体类

    return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } public void clear() { map.clear(); } public boolean containsKey(Object key) { // ...

    fastjson-1.2.7.jar通用json文本解析实例(轻开IOS和安卓App服务器开发)

    根书包中直接按key取值,如:@{j0:name},得到value 下一级节点则从上一级节点书包中先取回书包名: &lt;bag id=pPage&gt;&lt;!-- 取出书包名,根书包名默认为j0 --&gt; &lt;we name=array&gt;@{j0:array} 再下级节点以此类推 然后按...

    java程序员面试题

    HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 Hashtable继承自Dictionary类...

    怎么在java 8的map中使用stream

    文章目录简介基本概念使用Stream获取map的key使用stream获取map的value总结 怎么在java 8的map中使用stream 简介 Map是java中非常常用的一个集合类型,我们通常也需要去遍历Map去获取某些值,java 8引入了Stream的...

    大机汇编宏代码展开

    &gt; SET LOCAL_MAP DE_LIST-&gt; SET LOCAL_MAP ENTRY_GAP-&gt; SET LOCAL_MAP MEM_DATA-&gt; SET LOCAL_MAP NAME_LIST-&gt; SET LOCAL_MAP NAME-&gt; SET LOCAL_MAP PDSDE-&gt; SET LOCAL_MAP EXIT_DST-&gt; SET LOCAL_MAP EXIT_PREV_...

    SSH第7章上机.zip ACCP8.0

    &lt;entry key="dialect" value="org.hibernate.dialect.MySQL5Dialect" /&gt; &lt;entry key="show_sql" value="true" /&gt; &lt;entry key="format_sql" value="true" /&gt; &lt;entry key="current_session_context_class" value=...

    Java期末复习-类集框架

    SortedMap接口、HashMap类、Hashtable类、Properties类、Map.Entry接口、WeakHashMap类、IndentityHashMap类 集合输出: Iterator、ListIterator、foreach、废除的Enumeration Collections工具类 Comparable接口、...

    JSON依赖包,共7个

    JSON依赖包,共7个,含示范代码 ,介绍比较... Map.Entry m = (Map.Entry) it.next(); String key=(String)m.getKey(); String value=(String) m.getValue(); System.out.println(key+":"+value); }

    jcache-1.0.zip

    4. Entry是一个存储在Cache中的key-value对实体。 5. Expiry每一个存储在Cache中的条目有一个定义的有效期。一旦超过这个时间,条目变为过期的状态。一旦过期,条目将不可访问、更新和删除。缓存有效期可以通过...

    cas client核心jar文件

    &lt;entry key="authc" value-ref="formAuthenticationFilter"/&gt; &lt;!-- CAS --&gt; &lt;entry key="logout" value-ref="logout" /&gt; &lt;entry key="changePassword" value-ref="changePassword" /&gt; &lt;entry key=...

    Map遍历方法总结

    dui Map遍历方法进行总结: Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry,V&gt;。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

    在JSTL EL中处理java.util.Map,及嵌套List的情况

    在方括号中指定键,并将相应的值作为表达式的值返回。例如,表达式 ${map[‘key’]} 返回与 map...这是因为java.util.Map.Entry对象有getKey和getValue方法,表达式语言遵守JavaBean的命名约定。&lt;&#37; Map&lt;Strin

Global site tag (gtag.js) - Google Analytics