`
lovesailing
  • 浏览: 37766 次
  • 性别: 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中遇到的问题,整理出来,包括截图,希望可以帮到大家

    java.util.ConcurrentModificationException 解决方法

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

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

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

    30个常用java工具类

    9. **`java.util.Map.Entry`**:表示Map中的键值对,常用于遍历Map。 10. **`java.util.ArrayList`** 和 **`java.util.LinkedList`**:两种常见的列表实现,`ArrayList`基于数组,访问快速;`LinkedList`基于链表,...

    最最常用的 100 个 Java类分享

    46. `java.util.Map.Entry`:Map.Entry接口表示Map中的键值对。 47. `java.io.FileWriter`:FileWriter用于向文件写入字符数据。 48. `java.io.FileReader`:FileReader用于从文件读取字符数据。 49. `android....

    JAVA遍历Map所有元素.doc

    java.util.Map.Entry entry = (java.util.Map.Entry) it.next(); System.out.print(entry.getValue()); } System.out.println(); System.out.println(Calendar.getInstance().getTimeInMillis() - bs); } } ``...

    jstl读取map.txt

    这里主要关注的是如何利用JSTL中的`&lt;c:forEach&gt;`标签来遍历一个`java.util.Map`对象,并获取其中的键值对。 ### JSTL简介 JSTL是一组标准标签库,用于简化JavaServer Pages (JSP) 页面的开发工作。它提供了一系列...

    java bean和map之间的互转

    import java.util.Map; public class BeanToMapConverter { public static Map, Object&gt; beanToMap(Object bean) throws Exception { Map, Object&gt; map = new HashMap(); Class&lt;?&gt; clazz = bean.getClass(); ...

    Practice-HashMap:我的java.util.HashMap实现

    在Java编程语言中,`HashMap`是`java.util`包中的一个核心类,它提供了键值对(key-value pairs)的存储功能。本项目实践了一个自定义的HashMap实现,旨在帮助开发者深入理解其内部工作原理。`HashMap`是基于哈希表...

    java xml和map互转

    import java.util.Map; public class XmlMapConverter { public static Map, Object&gt; xmlToMap(String xmlStr) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader....

    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(); ...

    整理的若干java常用工具类

    以上只是Java工具类库中的一部分内容,实际上,它还包括许多其他实用的类,如`java.util.ArrayList`、`java.util.Stack`、`java.util.Map.Entry`等。熟练掌握这些工具类的使用,对于Java开发者来说至关重要,它们...

    java 集合并发操作出现的异常ConcurrentModificationException

    map.remove(entry.getKey()); // 这将抛出 ConcurrentModificationException } } ``` 在这个例子中,当我们试图在遍历过程中删除一个元素时,迭代器会检测到Map的结构已被改变,从而抛出异常。这是因为迭代器在...

    Java实现的决策树算法完整实例

    import java.util.Map.Entry; import java.util.Set; public class DicisionTree { public static void main(String[] args) throws Exception { System.out.print("我们测试结果:"); String[] attrNames = new...

    JAVA导出excel文件2003版,结合具体框架的实现

    import java.util.Map.Entry; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import jxl.Workbook; import jxl.format.Alignment; import jxl.format.Colour; import jxl....

    《软件开发基础(Java)》实验报告-(集合框架).docx

    for (Map.Entry, List&lt;Score&gt;&gt; entry : scoresMap.entrySet()) { List&lt;Score&gt; lessonScores = entry.getValue(); for (Score score : lessonScores) { if (score.getId() == studentId) { System.out.println("学生...

    Map,HashMap,TreeMap的使用

    import java.util.Map; import java.util.TreeMap; public class MapAppTest { public static void main(String[] args) { noOrder(); hasOrder(); likedHashMap(); } public static void noOrder() { ...

    Java集合框架Map接口.pdf

    import java.util.Map; public class MapExample { public static void main(String[] args) { // 创建一个HashMap对象 Map, Integer&gt; map = new HashMap(); // 向Map中添加元素 map.put("apple", 1); map....

    java 按照每周分组

    import java.util.Map; import java.util.stream.Collectors; public class WeekGroupingExample { public static void main(String[] args) throws Exception { // 假设你已经有了按日期排序的YourDataType列表 ...

Global site tag (gtag.js) - Google Analytics