`

对Map排序

 
阅读更多

本来来自:http://blog.sina.com.cn/s/blog_93daad41010119di.html

本节实例介绍对Map中的记录根据键进行排序,Map对象的键是Integer类型,排序结果可以是升序也可以是降序。

关键技术剖析:

l  只有TreeMap能够把保持的记录根据键排序,因此,可以把其他Map转换成TreeMap,转换的方法是把Map对象当做参数构造TreeMap

l  TreeMap默认用升序排序,可以指定排序用的比较器。比较实现Comparator

import java.util.Comparator;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

import java.util.TreeMap;

 

public class SortMap1 {

   // 输出map

   private static void output(Map map) {

      // 第一种方法用 map.entrySet()遍历

      Iterator it = map.entrySet().iterator();

      while (it.hasNext()) {

         Map.Entry<Integer, String> s = (Entry<Integer, String>) it.next();

         int key = s.getKey();

         String value = s.getValue();

         // System.out.println("map的键是:"+key+",值是:"+value);

      }

 

      // 第二种方法用map.keySet()遍历

      it = map.keySet().iterator();

      while (it.hasNext()) {

         int key = (Integer) it.next();

         String value = (String) map.get(key);

         System.out.println("map的键是:" + key + ",值是:" + value);

 

      }

 

   }

 

   public static void main(String[] args) {

      Map map = new HashMap();

      map.put(new Integer(5), "aaa");

      map.put(new Integer(8), "bbb");

      map.put(new Integer(4), "ccc");

      map.put(new Integer(7), "ddd");

      map.put(new Integer(3), "eee");

      map.put(new Integer(1), "fff");

      System.out.println("初始化后的map:");

      output(map);

  

      // 借助TreeMap的排序功能给mayMap排序

      Map treeMap = new TreeMap(map);

      System.out.println("排序后的map:");

      output(treeMap);

  

      // 用自定义的比较器排序

      TreeMap newTreeMap = new TreeMap(new MyComparator());

      newTreeMap.putAll(map);

      System.out.println("用自定义的比较器排序后的map:");

      output(newTreeMap);

   }

}

 //比较器

class MyComparator implements Comparator {

 

   @Override

   public int compare(Object o1, Object o2) {

      int i1 = (Integer) o1;

      int i2 = (Integer) o2;

      if (i1 > i2) {

         return -1;

      }

      if (i1 < i2) {

         return 1;

      }

      return 0;

   }

}
 
 

 

 

分享到:
评论

相关推荐

    对Map的key和value进行排序

    对Map的key和value进行排序 对Map的key和value进行排序是Java编程中非常重要的一部分。Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足...

    map排序.go

    map排序

    java实现的map排序

    Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会...理解了上述内容后,即使存在个别字词识别问题,也不影响对Java中Map排序方法的理解和应用。

    对map里面的value进行排序

    而“工具”标签可能意味着博主还介绍了某些可以帮助处理Map排序的第三方库或实用工具。 在1.txt文件中,如果包含的是上述知识点的示例代码或进一步的解释,读者可以通过阅读文件内容来加深理解。总的来说,理解和...

    Java Map 按值排序

    我们可以使用map的entrySet()方法获取所有键值对,然后通过sorted()方法进行排序,最后用collect()方法将结果转换回Map: ```java Map, Integer&gt; map = new HashMap(); // 添加元素... Map, Integer&gt; sortedByValue...

    Java Map按键排序和按值排序

    Map是一种键值对的集合,它可以按照键或值进行排序。下面,我们将详细地介绍Java Map的按键排序和按值排序。 按键排序(sort by key) Java中的TreeMap,V&gt;类可以实现Map的按键排序。TreeMap,V&gt;是一个基于红黑树的...

    Map参数按ASCII码排序

    将map按ASCII码排序,适用于将请求头的参数转为map,map内可再含有map,递归排序,无遗漏。运行demo里main方法即可进行验证。

    Java 对象属性map排序示例

    当我们需要按照特定顺序遍历Map中的元素时,就需要对Map进行排序。本示例将详细介绍如何对Java对象属性Map进行排序。 首先,了解Map的基本类型。Java提供了HashMap、TreeMap等实现Map接口的类。HashMap是非排序的,...

    对Map按key和value分别排序

    "对 Map 按 key 和 value 分别排序" 摘要:本文主要介绍了 Map 按 key 和 value 分别排序的方法,包括使用 TreeMap 的 key 排序和 value 排序两种方式。 Map 按 key 排序 Map 是键值对的集合接口,它的实现类主要...

    java Map转Bean Bean转Map Map排序

    java Map转Bean Bean转Map Map排序

    C++98 STL的map 如何避免自动排序.md

    C++11中有无序map即: unordered_map 可以不自动排序, 那么C++98中只有map 如何避免自动排序。

    List&lt;map&gt;多字段组合排序

    List&lt;map&gt;,List&lt;Map, Object&gt;&gt;,多字段组合排序。提供一个简易的思路,如果需要进行参考。

    map排序.txt

    ### Map排序方法详解 在Java编程中,Map接口是一种常用的数据结构,用于存储键值对。但是,默认情况下,Map并不支持排序操作。然而,在实际应用中,我们常常需要按照特定的顺序来展示或处理Map中的元素。为此,本文...

    C++中使用sort对常见容器排序.docx

    由于 `map` 已经内部进行了排序,通常不直接对整个 `map` 进行排序,而是可以通过遍历 `map` 的键或值来进行排序。例如,可以创建一个 `vector` 来存储 `map` 的键或值,并对这个 `vector` 进行排序。 ##### 示例...

    对于java map类排序

    然而,有时候我们可能需要对Map按照键(key)或者值(value)进行排序。这里,我们讨论的是“对于Java Map类排序”,特别是通过键进行排序。 在给定的代码中,有一个名为`mapSortByKey`的方法,该方法接收一个未...

    Java中Map的排序问题详解

    本文将深入探讨如何在Java中对Map进行按键排序和按值排序。 首先,让我们了解各种Map实现的特点: 1. **HashMap**:HashMap是最常见的Map实现,它依赖于键的hashCode来存储数据,提供快速的访问速度。然而,...

    List<Map>中英文排序

    支持一个List&lt;Map&gt;按照MAP中的一个或者多个Key的value值的中英文来排序,自动识别字符和数字(包括[a-zA-z]?[0-9]*)排序

    Map排序

    标题中的“Map排序”指的是在Java编程中对Map集合进行排序的操作。Map接口在Java中是一种非常重要的数据结构,它存储键值对(key-value pairs),其中键是唯一的。默认情况下,Map并不保证其元素的顺序,但有些场景下...

    基于Map_Reduce的分布式数据排序算法分析.pdf

    每个节点上的Map函数负责对输入数据进行局部排序,通常采用快速排序、归并排序等高效的排序算法。这个阶段的目标是生成一系列键值对,其中键是排序依据,值是对应的原始数据。 2. Shuffle阶段:Shuffle阶段是...

    java map实例,排序

    关于Map的排序,Java 8引入了一个新的API——`Map.Entry`的`comparingByValue()`和`comparingByKey()`方法,这使得我们可以方便地对Map的值或键进行比较和排序。例如,可以使用`map.entrySet().stream().sorted(Map....

Global site tag (gtag.js) - Google Analytics