`
lovesailing
  • 浏览: 36553 次
  • 性别: Icon_minigender_1
  • 来自: 陕西
社区版块
存档分类
最新评论

java.util Map.Entry

    博客分类:
  • java
阅读更多

标准的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());
} 

 

分享到:
评论

相关推荐

    无法解析类型 java.util.Map$Entry。从必需的 .class 文件间接引用了它

    这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家

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

    当forEach 的items属性中的表达式的值是java.util.Map时,则var中命名的变量的类型就是 java.util.Map.Entry。这时var=entry的话,用表达式${entry.key}取得键名。 用表达${entry.value}得到每个entry的值。这是...

    java.util.ConcurrentModificationException 解决方法

    java.util.ConcurrentModificationException 解决方法 ... at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) 例如以下程序(转

    智能识别收货地址Java.pdf

    } sb.append(String.format("%s=%s", URLEncoder.encode(entry.getKey().toString(), "UTF-8"), URLEncoder.encode(entry.getValue().toString(), "UTF-8") )); } return sb.toString(); } public static void main...

    java桑硅谷 day23 晨考.zip

    import java.util.Map.Entry; import java.util.Set; import java.util.TreeMap; public class TestTreeMap { public static void main(String[] args) { TreeMap, ArrayList&lt;City&gt;&gt; map = new TreeMap(); ...

    模拟实现购物车功能

    import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer&gt; ...

    模拟购物车

    import java.util.Map; import java.util.Map.Entry; import java.util.Set; /** * 购物车类 */ public class Cart { //创建一个map对象,用来保存商品,key为商品,value为商品的数量 private Map, Integer&gt; ...

    android手机游戏源码

    手机游戏源码,可运行,比较好 ... import java.io.IOException; import java.util.HashMap; import java.util.Map;... MediaPlayer mp = entry.getValue(); if (mp != null) { mp.release(); } } } }

    Class2Json:将Java类结构序列化为json

    显示此帮助屏幕-jar &lt;file&gt; 罐子要加工-out &lt;file&gt; 输出文件(默认值:output.json) 例子: -out output.json java.util.List java.util.Map java.util.Map$Entry -jar example.jar -out output.json -jar example...

    图片文件上次,获取图片文件实际类型

    import java.util.Map.Entry; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; import javax.servlet.http.HttpServletRequest; import ...

    sfbu:序列文件备份工具

    SFBU 序列文件备份实用程序 - 用于迁移媒体库而不会...import java.util.Map.Entry ;import com.boleslaw.client.FileToHttpConsumer ;import com.boleslaw.client.Poster ;...@org . junit . Testpublic void test1(){

    大厂真题之蚂蚁金服-Java高级.zip

    jdk1.7 到 jdk1.8 Map 发生了什么变化(底层)? 1.8 之后 hashMap 的数据结构发生了变化,从之前的单纯的数组+链表结构变成...解决方案是 jdk 的 ConcurrentHashMap,位于 java.util.concurrent 下,专门 解决并发问题。

    Java代码

    导入java.util.Map.Entry; 公共课程问题1 { public void stringToCollection() {LinkedHashMap&lt;String&gt; hm = new LinkedHashMap();String s = "FName=Isaac|LName=Newton|Address=UK|Age=20|School=Trinity|...

    Android封装的http请求实用工具类

    代码如下:import java.io.BufferedReader;import java.io.InputStreamReader;import java.net....import java.util.Map.Entry; import org.apache.http.HttpResponse;import org.apache.http.HttpVersion;import

    Java工具库BeanQuery.zip

    执行完以上代码后,result列表中的每个Map都是java.util.LinkedHashMap实例,每个Map的都由下面的这三个Entry组成: key=price, value=book.getPrice() key=name, value=book.getName() key=...

    嵌入式HTTP服务器NanoHTTPD.zip

    import java.util.Map;   public class DebugServer extends NanoHTTPD {  public DebugServer() {  super(8080);  }    public static void main(String[] args) {  ServerRunner.run...

    pageDate封装参数,不用实体类

    import java.util.*; /** * 说明:参数封装Map * @version */ public class PageData extends HashMap implements Map{ private static final long serialVersionUID = 1L; Map map = null; ...

    system-hook:用于Java应用程序的全局键盘鼠标钩

    Java(低级)系统挂钩为Java提供了非常轻量级的... 使用GlobalKeyboardHook类,可以注册GlobalKeyListener或适配器类GlobalKeyAdapter来监听keyPressed和keyReleased事件,如下所示: import java.util.Map.Entry ;imp

    android折线图

    006 import java.util.Map; 007 import java.util.Set; 008 009 import android.annotation.SuppressLint; 010 import android.content.Context; 011 import android.graphics.Canvas; 012 import...

    达内 coreJava 习题答案

    import java.util.Scanner; class Bissextile{ public static void main(String[] arge){ System.out.print("请输入年份"); int year; //定义输入的年份名字为“year” Scanner scanner = new Scanner(System.in...

Global site tag (gtag.js) - Google Analytics