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

Java Map 按value排序、TreeMap、linkedHashMap笔记

    博客分类:
  • J2SE
阅读更多
	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 按照Value排序的实现方法

    在Java编程中,Map接口是用于存储键值对的数据结构,常见的实现类包括HashMap、TreeMap、Hashtable和LinkedHashMap等。这些实现类各有特点,但默认并不保证元素的顺序。当我们需要按照Value(值)对Map进行排序时,...

    Java Map按键排序和按值排序

    Java Map的按键排序和按值排序可以使用TreeMap,V&gt;和LinkedHashMap, String&gt;类来实现。按键排序可以使用TreeMap,V&gt;的比较器来定义比较规则,而按值排序可以使用LinkedHashMap, String&gt;的链表结构来保存键值对。

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    ### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...

    TreeMap按VALUE排序

    TreeMap按VALUE排序

    对Map按key和value分别排序

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

    对Map的key和value进行排序

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

    Java Map 按值排序

    总结来说,Java提供了多种方式来对Map按值进行排序,包括使用TreeMap、Collections.sort、Stream API以及Guava库。选择哪种方法取决于项目需求和个人喜好,但在Java 8及更高版本中,Stream API通常被认为是最简洁和...

    Map,HashMap,TreeMap的使用

    在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 Map 接口,都是 Map 的子类,每个子类都有其特点和使用场景。 HashMap HashMap 是最常用的 Map 实现类,它根据键的哈希码值存储数据,能够快速地存储和获取...

    浅谈Java之Map 按值排序 (Map sort by value)

    这里我们将探讨如何在Java中实现按值排序的Map,特别关注“按值排序”这一需求。 首先,标准的SortedMap接口是根据键(key)进行排序的,例如TreeMap就是一种按键升序排序的实现。因此,如果想按值排序,我们需要...

    Java Map 按key排序和按Value排序的实现方法

    本文主要关注如何对Java Map中的键(key)和值(value)进行排序。 1. **Key排序**: - **TreeMap** 是一个基于红黑树数据结构的Map实现,它能自动按key的自然顺序或自定义的Comparator进行排序。默认情况下,...

    java实现的map排序

    Java中实现Map排序的方式主要有两种,一种是使用TreeMap,另一种是使用SortedMap接口。HashMap内部元素是无序的,它不会记录插入顺序,也不保证顺序。如果需要有序的Map,可以使用TreeMap,它会根据键的自然顺序进行...

    对map里面的value进行排序

    Map接口不直接支持排序,但是Java提供了一些实现了SortedMap接口的类,如TreeMap,它会按照键(Key)的自然顺序或者自定义比较器(Comparator)进行排序。但是,对于已经创建的HashMap或其他非排序Map,我们不能直接...

    JCF(List、Set、Map)学习,实现了<key,value>按value排序噢

    本次我们关注的是Java集合框架中的三类接口:List、Set和Map,以及如何实现它们的特定功能,特别是关于`TreeSet`和`TreeMap`的按值排序。标题中提到的“JCF(List、Set、Map)学习,实现了,value&gt;按value排序”是一个...

    Java 对象属性map排序示例

    总结来说,Java中对Map进行排序通常涉及到HashMap与TreeMap的选择,以及Comparator的使用。对于对象属性Map的排序,需要先对Map进行排序,然后可能还要对对象列表进行排序。通过理解这些概念,开发者能够灵活地控制...

    java map 集合 排序

    本文将深入探讨Java Map集合的排序方法。 一、TreeMap:自动排序 1. **TreeMap** 是一个基于红黑树实现的Map,它会自动根据键的自然顺序或自定义比较器进行排序。例如: ```java import java.util.TreeMap; ...

    Hashmap 通过对VALUE排序 源代码

    1. 使用TreeMap:TreeMap是一个有序的Map实现,它基于红黑树数据结构,可以按照键或自定义比较器对元素进行排序。如果你需要对值进行排序,可以创建一个基于Value的Comparator,然后用这个Comparator构建一个新的...

    java map实例,排序

    本篇文章将详细探讨`HashMap`, `LinkedHashMap`, `TreeMap`, 和 `Hashtable`这四个常见的Map实现类,特别是它们如何处理排序的问题。 首先,`HashMap`是最常用的Map实现,它不保证元素的顺序,插入顺序和遍历顺序...

    java的Map集合中按value值进行排序输出的实例代码

    在本例中,我们将详细探讨如何在Java中对Map集合按value值进行排序,并给出一个具体的实例代码。 首先,Map接口有多种实现类,如HashMap、TreeMap等。这里我们以HashMap为例,因为它是Java中最常用的Map实现,但它...

    Android 对Map按key和value分别排序的实例

    由于TreeMap本身无法直接按value排序,我们可以借助Collections的`sort()`方法,将Map的entrySet转换为List,然后对List进行排序。以下是按value排序的示例: ```java import java.util.*; public class ...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

Global site tag (gtag.js) - Google Analytics