public static void main(String[] args) { Map<String,Object[]> m = new HashMap<String, Object[]>(); m.put("1", new Object[]{1,"ff"}); m.put("2", new Object[]{11,"dd"}); m.put("3", new Object[]{23,"ee"}); m.put("4", new Object[]{11,"gg"}); for (Iterator iterator = m.entrySet().iterator(); iterator.hasNext();) { Entry<String, Object[]> type = (Entry<String, Object[]>) iterator.next(); Object[] obj1s = ((Entry<String,Object[]>)type).getValue(); System.out.println(type.getKey()+"-->"+obj1s[0]+"::"+obj1s[1]); } ArrayList<Entry<String,Object[]>> list = new ArrayList<Entry<String,Object[]>>(m.entrySet()); //根据value排序 Collections.sort(list, new Comparator<Object>() { public int compare(Object e1, Object e2) { Object[] obj1s = ((Entry<String, Object[]>) e1).getValue(); Object[] obj2s = ((Entry<String, Object[]>) e2).getValue(); // String obj1 = (String) obj1s[1]; // String obj2 = (String) obj2s[1]; Integer obj1 = (Integer) obj1s[0]; Integer obj2 = (Integer) obj2s[0]; return obj1.compareTo(obj2); } }); System.out.println("============"); for (Iterator iterator = list.iterator(); iterator.hasNext();) { Entry<String, Object[]> type = (Entry<String, Object[]>) iterator.next(); Object[] obj1s = ((Entry<String,Object[]>)type).getValue(); System.out.println(type.getKey()+"-->"+obj1s[0]+"::"+obj1s[1]); } //LinkedHashMap记录元素顺序,默认为插入顺序输出,够着函数可以指定,为访问最近的元素输出,LUR算法 Map<String,Object[]> linked = new LinkedHashMap<String, Object[]>(20,0.75f,true); linked.put("1", new Object[]{1,"ff"}); linked.put("2", new Object[]{11,"dd"}); linked.put("3", new Object[]{23,"ee"}); linked.put("4", new Object[]{11,"gg"}); System.out.println("============"); linked.get("4"); linked.get("4"); linked.get("1"); linked.get("1"); linked.get("4"); for (Iterator iterator = linked.entrySet().iterator(); iterator.hasNext();) { Entry<String, Object[]> type = (Entry<String, Object[]>) iterator.next(); Object[] obj1s = ((Entry<String,Object[]>)type).getValue(); System.out.println(type.getKey()+"-->"+obj1s[0]+"::"+obj1s[1]); } //TreeMap实现排序,sortedMap是TreeMap的实现 TreeMap<String,Object[]> tree = new TreeMap<String, Object[]>(); tree.put("1", new Object[]{1,"ff"}); tree.put("6", new Object[]{11,"dd"}); tree.put("3", new Object[]{23,"ee"}); tree.put("4", new Object[]{11,"gg"}); System.out.println("============"); for (Iterator iterator = tree.entrySet().iterator(); iterator.hasNext();) { Entry<String, Object[]> type = (Entry<String, Object[]>) iterator.next(); Object[] obj1s = ((Entry<String,Object[]>)type).getValue(); System.out.println(type.getKey()+"-->"+obj1s[0]+"::"+obj1s[1]); } }
相关推荐
在Java编程中,Map接口是用于存储键值对的数据结构,常见的实现类包括HashMap、TreeMap、Hashtable和LinkedHashMap等。这些实现类各有特点,但默认并不保证元素的顺序。当我们需要按照Value(值)对Map进行排序时,...
Java Map的按键排序和按值排序可以使用TreeMap,V>和LinkedHashMap, String>类来实现。按键排序可以使用TreeMap,V>的比较器来定义比较规则,而按值排序可以使用LinkedHashMap, String>的链表结构来保存键值对。
### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...
TreeMap按VALUE排序
摘要:本文主要介绍了 Map 按 key 和 value 分别排序的方法,包括使用 TreeMap 的 key 排序和 value 排序两种方式。 Map 按 key 排序 Map 是键值对的集合接口,它的实现类主要包括 HashMap、TreeMap、Hashtable 及...
对Map的key和value进行排序是Java编程中非常重要的一部分。Map是Java集合框架中的一种数据结构,用于存储键值对。然而,在实际应用中,我们经常需要对Map中的key或value进行排序,以满足特定的业务需求。 对Map中的...
总结来说,Java提供了多种方式来对Map按值进行排序,包括使用TreeMap、Collections.sort、Stream API以及Guava库。选择哪种方法取决于项目需求和个人喜好,但在Java 8及更高版本中,Stream API通常被认为是最简洁和...
在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的哈希码值存储数据,能够快速地存储和获取...
这里我们将探讨如何在Java中实现按值排序的Map,特别关注“按值排序”这一需求。 首先,标准的SortedMap接口是根据键(key)进行排序的,例如TreeMap就是一种按键升序排序的实现。因此,如果想按值排序,我们需要...
本文主要关注如何对Java Map中的键(key)和值(value)进行排序。 1. **Key排序**: - **TreeMap** 是一个基于红黑树数据结构的Map实现,它能自动按key的自然顺序或自定义的Comparator进行排序。默认情况下,...
Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...
Map接口不直接支持排序,但是Java提供了一些实现了SortedMap接口的类,如TreeMap,它会按照键(Key)的自然顺序或者自定义比较器(Comparator)进行排序。但是,对于已经创建的HashMap或其他非排序Map,我们不能直接...
本次我们关注的是Java集合框架中的三类接口:List、Set和Map,以及如何实现它们的特定功能,特别是关于`TreeSet`和`TreeMap`的按值排序。标题中提到的“JCF(List、Set、Map)学习,实现了,value>按value排序”是一个...
总结来说,Java中对Map进行排序通常涉及到HashMap与TreeMap的选择,以及Comparator的使用。对于对象属性Map的排序,需要先对Map进行排序,然后可能还要对对象列表进行排序。通过理解这些概念,开发者能够灵活地控制...
本文将深入探讨Java Map集合的排序方法。 一、TreeMap:自动排序 1. **TreeMap** 是一个基于红黑树实现的Map,它会自动根据键的自然顺序或自定义比较器进行排序。例如: ```java import java.util.TreeMap; ...
1. 使用TreeMap:TreeMap是一个有序的Map实现,它基于红黑树数据结构,可以按照键或自定义比较器对元素进行排序。如果你需要对值进行排序,可以创建一个基于Value的Comparator,然后用这个Comparator构建一个新的...
本篇文章将详细探讨`HashMap`, `LinkedHashMap`, `TreeMap`, 和 `Hashtable`这四个常见的Map实现类,特别是它们如何处理排序的问题。 首先,`HashMap`是最常用的Map实现,它不保证元素的顺序,插入顺序和遍历顺序...
在本例中,我们将详细探讨如何在Java中对Map集合按value值进行排序,并给出一个具体的实例代码。 首先,Map接口有多种实现类,如HashMap、TreeMap等。这里我们以HashMap为例,因为它是Java中最常用的Map实现,但它...
由于TreeMap本身无法直接按value排序,我们可以借助Collections的`sort()`方法,将Map的entrySet转换为List,然后对List进行排序。以下是按value排序的示例: ```java import java.util.*; public class ...
在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...