- 浏览: 166528 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (54)
- JAVA_SE (18)
- JAVA_EE (11)
- Spring Security (0)
- Spring Ldap (0)
- Spring Quartz (0)
- Spring AOP (0)
- Spring IOC (1)
- EhCache (0)
- OSCache (0)
- Struts2 I18N (0)
- Flex (1)
- Android (1)
- PHP (1)
- HTML (3)
- DIV+CSS (1)
- JavaScript (7)
- Groovy (0)
- jQuery (3)
- ExtJS (0)
- DOJO (0)
- Ajax (1)
- Oracle (1)
- Microsoft SQL Server (1)
- MySQL (1)
- XML (0)
- Ibatis (0)
- WebLogic (0)
- JBoss (1)
- Tomcat (6)
- GlassFish (0)
- Jetty (1)
- JSF (0)
- JSTL+EL (1)
- SSH_Integration (0)
- Maven (1)
- Active MQ (0)
- Ldap (2)
- MyVD (1)
- JNI (0)
- JAVA 7 (0)
- 程序人生 (2)
- WebService (3)
- 小知识点综合 (2)
- 开发工具 (3)
- nodejs (1)
- javamail (2)
- Ant (1)
- linux (4)
最新评论
-
stranger2008:
这个代码有问题public static int check( ...
java检测端口号是否配占用 -
pengyan5945:
gold__sun 写道做安装包?将tomcat整个打成exe ...
Tomcat找不到service.bat文件 -
gold__sun:
做安装包?将tomcat整个打成exe么?求教如何做
Tomcat找不到service.bat文件 -
pengyan5945:
chenzengzhe 写道不是吧,你在安装的时候可以选择语言 ...
CentOS 6.2 中文 -
chenzengzhe:
不是吧,你在安装的时候可以选择语言呀.
CentOS 6.2 中文
package com.abc.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; import java.util.Map.Entry; /** * 可能会遇到这样的情况,我可能要对Map<key,value>的集合进行排序,而这种排序又分为两种情况,你可能按key值排序; * 另外你也可能会遇到按value值进行排序的情况。 * 大家都知道,默认的情况下,TreeMap:是按key升序,进行排序的;LinkedHashMap:是按加入顺序进行排序的 * ;HashMap:内部数值的顺序并不是以存放的先后顺序为主 * ,而是以hash值的顺序为主,其次才是存放的先后顺序。在这里我们只讨论如何实现HashMap的排序。 * */ @SuppressWarnings("unchecked") public class MapSortTest { public static void main(String[] args) { //初始化map Map<String, Integer> map=getMapInstance(); printMap(map); //选择操作 Scanner input=new Scanner(System.in); int num=input.nextInt(); switch (num) { case 0: System.exit(0); break; case 1: Map<String, Integer> sortMaps = sortMapByKey(map); printMap(sortMaps); break; case 2: sortMapByValue(map); break; case 3: mapSortByKey(map); break; case 4: mapSortByValue(map); break; default: System.out.println("error input!"); break; } } public static Map sortMapByKey(Map map) { Map<Object, Object> mapVK = new TreeMap<Object, Object>( new Comparator<Object>() { public int compare(Object obj1, Object obj2) { String v1 = (String) obj1; String v2 = (String) obj2; int s = v2.compareTo(v1); return s; } }); Set col = map.keySet(); Iterator iter = col.iterator(); while (iter.hasNext()) { String key = (String) iter.next(); Integer value = (Integer) map.get(key); mapVK.put(key, value); } return mapVK; } public static void sortMapByValue(Map maps) { List<Map.Entry<String, Integer>> info = new ArrayList<Map.Entry<String, Integer>>(maps.entrySet()); Collections.sort(info, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> obj1,Map.Entry<String, Integer> obj2) { return obj2.getValue() - obj1.getValue(); } }); for (int j = 0; j < info.size(); j++) { System.out.println(info.get(j).getKey() + "------->"+ info.get(j).getValue()); } } // ==================================================================================== private static SortedMap<String, Integer> mapSortByKey(Map<String, Integer> unsort_map) { TreeMap<String, Integer> result = new TreeMap<String, Integer>(); Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort(unsort_key); for (int i = 0; i < unsort_key.length; i++) { result.put(unsort_key[i].toString(), unsort_map.get(unsort_key[i])); } return result.tailMap(result.firstKey()); } public static void mapSortByValue(Map map) { List arrayList = new ArrayList(map.entrySet()); Collections.sort(arrayList,new Comparator(){ @Override public int compare(Object o1, Object o2) { Map.Entry obj1 = (Map.Entry)o1; Map.Entry obj2 = (Map.Entry)o2; return obj1.getValue().toString().compareTo(obj2.getValue().toString()); } }); for(Iterator it = arrayList.iterator();it.hasNext();){ Map.Entry entry = (Map.Entry)it.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } } public static void abc(Map map){ TreeMap treemap = new TreeMap(map); } public static void abcd() { Map<String, Integer> keyfreqs = new HashMap<String, Integer>(); ArrayList<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>(keyfreqs.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1,Map.Entry<String, Integer> o2) { return (o2.getValue() - o1.getValue()); } }); for (Entry<String, Integer> e : list) { System.out.println(e.getKey() + "::::" + e.getValue()); } } public static Map getMapInstance(){ Map<String, Integer> map = new HashMap<String, Integer>(); map.put("apple",40); map.put("boy",30); map.put("cat",20); map.put("dog",10); return map; } public static void printMap(Map map){ Iterator i = map.entrySet().iterator(); while (i.hasNext()) { Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) i.next(); System.out.println(entry.getKey() + ":"+ entry.getValue()); } System.out.println("========================================================"); } }
发表评论
-
apache commons-email1.3使用
2012-05-17 16:34 1929apache commons-email1.3下载地址: ... -
java mail jar冲突
2012-05-16 16:24 6077开发环境:jdk1.6.0_25 MyEclipse- ... -
Java获取操作系统信息
2012-04-10 15:09 1476今天在看jdk的demo时候发现java获取系统操作系统的一些 ... -
AD查询1000条限制和解决方案
2012-03-30 14:44 2795公司的一个项目要从AD上取数据,为了测试性能,批量在AD ... -
java检测端口号是否配占用
2012-03-27 14:21 8130java检测端口号是否被占用的工具类: p ... -
java集合(交集,并集,差集)
2011-12-15 09:44 20943说明:这里没有求差集的代码,有了交集和并集,差集=并集-交 ... -
SVN常见问题处理
2011-11-18 15:55 12911.SVN 提交时报错:Path is not a worki ... -
double与int类型自动转换
2011-11-08 17:20 1578package com.abc.test; pub ... -
构造方法在继承关系时的执行过程
2011-11-05 23:43 1256一句话:在执行子类的构造方法是先执行父类的构造方法! ... -
for循环,你深刻理解了吗?
2011-11-04 00:22 1325前几天,有一个面试机会,去看了看,遇到一个认为不错的面试题! ... -
HTML文件中使用Java程序
2011-09-27 15:00 1559HTML文件中使用Java程序:简而言之,在HTML文件中引入 ... -
Myeclipse安装svn插件(link方式)
2011-06-19 16:42 4059Myeclipse安装svn插件(link方式) 优 ... -
JAVA多线程通信
2011-06-16 12:33 986JAVA多线程通信 package com.frank ... -
Java序列化与反序列化(Serializable)
2011-06-16 00:09 4000Java序列化与反序列化(Serializable) ... -
Java 字符流实现文件读写操作(FileReader-FileWriter)
2011-06-15 22:08 9454Java 字符流实现文件读写操作(FileReader-Fil ... -
Java 字节流实现文件读写操作(InputStream-OutputStream)
2011-06-15 21:45 13717Java 字节流实现文件读写操作(InputStream-Ou ... -
JAVA环境变量配置
2011-06-14 23:51 1091JAVA的环境变量一共有三个:JAVA_HOME;PATH;C ...
相关推荐
对Map的key和value进行排序 对Map的key和value进行排序是Java编程中非常重要的一部分。Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足...
"对 Map 按 key 和 value 分别排序" 摘要:本文主要介绍了 Map 按 key 和 value 分别排序的方法,包括使用 TreeMap 的 key 排序和 value 排序两种方式。 Map 按 key 排序 Map 是键值对的集合接口,它的实现类主要...
当需要对Map中的数据进行排序时,通常有两种情况:按key排序和按value排序。本文将详细介绍如何在Android环境下对Map进行这两种排序。 首先,我们来讨论按key排序。TreeMap是一个基于红黑树实现的Map,它可以根据...
Java Map按键排序和按值排序 Java Map按键排序和按值排序是Java编程语言中常用的数据结构之一。Map是一种键值对的集合,它可以按照键或值进行排序。下面,我们将详细地介绍Java Map的按键排序和按值排序。 按键...
标题中提到的“JCF(List、Set、Map)学习,实现了<key,value>按value排序”是一个关键点,我们将深入探讨这个话题。 首先,让我们了解List、Set和Map的区别。List是有序的集合,允许重复元素,并且可以保持插入顺序...
而“工具”标签可能意味着博主还介绍了某些可以帮助处理Map排序的第三方库或实用工具。 在1.txt文件中,如果包含的是上述知识点的示例代码或进一步的解释,读者可以通过阅读文件内容来加深理解。总的来说,理解和...
Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现 Java8 中的 Stream 操作为开发者提供了简洁高效的数据处理方式,今天我们将介绍如何使用 Java8 Stream 操作 Map 根据 Key 或 Value 排序的实现。 Map 根据 ...
然而,在某些场景下,我们可能需要将Map中的元素按照值(value)进行排序。本文将详细介绍如何在Java中实现Map按值排序的几种方法。 1. 使用TreeMap TreeMap是Java中实现Map接口的一个类,它内部使用红黑树数据结构...
在提供的代码中,可以看到一个名为`getSortJson`的方法,它接受一个JSONObject作为参数,并返回一个新的按key排序后的JSONObject。这个方法的具体步骤如下: 1. 使用`Iterator<String> iteratorKeys = json.keys();...
本文主要关注如何对Java Map中的键(key)和值(value)进行排序。 1. **Key排序**: - **TreeMap** 是一个基于红黑树数据结构的Map实现,它能自动按key的自然顺序或自定义的Comparator进行排序。默认情况下,...
HashMap是Java编程语言中最常用的集合类之一,它提供了一种基于键值对(key-value pair)的数据存储方式,允许我们通过键快速查找对应的值。在Java的HashMap中,元素是无序的,也就是说,它们在内存中的存储位置并...
当我们需要按照Value(值)对Map进行排序时,通常会采用特定的方法。以下是关于Java Map按照Value排序的实现方法的详细说明: 1. **HashMap**: - HashMap是基于哈希表实现的,它不保证元素的顺序,插入顺序和遍历...
- 有序map在后端处理时,可以方便地进行有序遍历,例如在循环中按顺序访问key。这在处理一些需要按照特定顺序执行的操作时非常有用,比如迭代处理数据、渲染模板等。 ```go for _, key := range om.Order() { // ...
// java中对象容器主要有Set,List和Map三个接口类。 // 迭代器(Iterator)模式,又叫做游标(Cursor)...// TreeMap按自己的意愿进行排序,默认按key值升序排序。 另包含一篇网文:在java中使用TreeMap进行中文排序
本篇文章将深入讲解如何在Java中实现Map按Key排序,并通过一个具体的实例代码进行演示。 首先,我们要了解Java中支持按Key排序的Map实现类:TreeMap。TreeMap内部基于红黑树数据结构,能够保证Map的Key按照自然顺序...
本文将详细介绍如何实现`Map`按照值(value)升序排序以及按照键(key)排序。 首先,我们需要了解`Map`的基本概念。`Map`接口是Java集合框架的一部分,它定义了键值对的存储和访问方法。常见的`Map`实现有`HashMap...
Java中对List<Map>根据Map某个key值进行排序的方法 在 Java 中,排序是一个非常常见的操作,特别是在处理 List 集合时。当我们需要根据 Map 中的某个 key 值对 List 集合进行排序时,需要使用Comparator接口来实现...
这里我们将探讨如何在Java中实现按值排序的Map,特别关注“按值排序”这一需求。 首先,标准的SortedMap接口是根据键(key)进行排序的,例如TreeMap就是一种按键升序排序的实现。因此,如果想按值排序,我们需要...
支持一个List<Map>按照MAP中的一个或者多个Key的value值的中英文来排序,自动识别字符和数字(包括[a-zA-z]?[0-9]*)排序