Java 实现Map集合排序功能

第一步:Map中新增sort临时键

// 初始化Map集合
List<Map<String, String>> columns = new ArrayList<Map<String, String>>();
Map<String, String> c1 = new HashMap<String,String>();
c1.put("sort", "8");
c1.put("title", "www.chuweibiao.com");
columns.add(c1);
Map<String, String> c2 = new HashMap<String,String>();
c2.put("sort", "5");
c2.put("title", "www.chuweibiao.com");
columns.add(c2);
Map<String, String> c3 = new HashMap<String,String>();
c3.put("sort", "13");
c3.put("title", "www.chuweibiao.com");
columns.add(c3);

第二步:进行排序

/**
 * Map类型元素集合排序
 * @param columns
 * 		Map类型元素集合
 */
private void listSortingForMapTypeElement(List<Map<String, Object>> columns) {
	Collections.sort(columns, new Comparator<Map<String, Object>>() {
		public int compare(Map<String, Object> last, Map<String, Object> next) {
			Object lastSort = last.get("sort");
			Object nextSort = next.get("sort");
			if (lastSort == null || nextSort == null) {
				return 0;
			} else {
				return Integer.parseInt(String.valueOf(lastSort))
						> Integer.parseInt(String.valueOf(nextSort)) ? 1 : 0;
			}
		}
	});
}

第三步:移除临时键

/**
 * 移除排序临时键
 * @param columns
 * 		Map类型元素集合
 */
private void removeSortKey(List<Map<String, Object>> columns) {
	for (Map<String, Object> column : columns) {
		column.remove("sort");
	}
}

谁有更好的办法请拍砖指教,O(∩_∩)O谢谢~

时间: 2024-12-13 21:18:00

Java 实现Map集合排序功能的相关文章

Java基础知识强化之集合框架笔记51:Map集合之Map集合的功能概述与测试

1. Map集合的功能概述 (1)添加功能 V put(K key,V value):添加元素.这个其实还有另一个功能?先不告诉你,等会讲 如果键是第一次存储,就直接存储元素,返回null 如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值 (2)删除功能 void clear():移除所有的键值对元素 V remove(Object key):根据键删除键值对元素,并把值返回 (3)判断功能 boolean containsKey(Object key):判断集合是否包含指定的键 bo

java8新特性:对map集合排序

一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map.map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map,HashMap是无序的,它根据key的HashCode 值来存储数据,根据key可以直接获取它的Value,同时它具有很快的访问速度.HashMap最多只允许一条记录的key值为Null(多条会覆盖);允许多条记录的Value为

java基础 Map集合

集合 集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下 Collection接口是集合的根接口,没有蹄冻这个接口的直接实现类,但是却又其让其被继承的长   生的两个接口就是set与list .Set中不能包含重复的元素.List是一个有序的集合 List 有序  可重复的 List里存放的对象是有序的,同时也是可以重复的,list 关注的是索引,拥有一系列和索引相关的方法,查询速度快 因为是会伴随这后面数据的移动,所有插入删除数据速度慢 Set 无序 不能重复 Set是无序的

java中Map集合的理解

Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值.该集合是线程同步的.jdk1.0.效率低. |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的.将hashtable替代,jdk1.2.效率高. |--TreeMap:底层是二叉树数据结构.线程不同步.可以用于给map集合中的键进行排序. 和Set很像.其实大家,Set底层就是使用了Map集合. /* map集合的两种取出方式: 1,Set<k> keySe

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

java中map集合的迭代

import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class TestMap { public static void main(String[] args) { Map<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "a"); map.put(2, "b

自定义写实现java中map中的功能(简易)

package test;/** * 通过自定义来实现一个map功能 * 存放键值对,根据键对象找到一个值对象,确保没有重复 */ import java.util.Map; public class test01 { SxtEntry[] arr=new SxtEntry[990]; int size; //定义函数实现将键值对放入数组 public void put(Object key,Object value){ SxtEntry entry=new SxtEntry(key, valu

java之map集合

如果程序中存储了几百万个学生,而且经常需要使用学号来搜索某个学生,那么这个需求有效的数据结构就是Map.Map是一种依照键(key)存储元素的容器,键(key)很像下标,在List中下标是整数.在Map中键(key)可以使任意类型的对象.Map中不能有重复的键(Key),每个键(key)都有一个对应的值(value).一个键(key)和它对应的值构成map集合中的一个元素. Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象.

Java中map集合系列原理剖析

看了下JAVA里面有HashMap.Hashtable.HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap.Hashtable的区别 HashMap和Hashtable的实现原理 HashMap的简化实现MyHashMap HashMap和Hashtable的区别 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全Hashtable的实现方法里面都添加了synchron