Golang对map中的key进行排序

package main

import (
	"fmt"
	"sort"
)

func main() {    //首先生成26个字母充当map中的key
	var a = ‘a‘
	var m map[string]int = make(map[string]int)
	for i := 0; i < 26; i++ {
		// fmt.Printf("%c", a)  //%c 是输出字符
		key := fmt.Sprintf("%c", a)
		a++          //在底层就是一个ACSILL码 在a的对应的底层数字是96基础上加1  a++ 等于 a=a+1 等于 a+=1  这几种形式都是等价的
		m[key] = i
	}
	fmt.Println(m)
	//对以上的map的key进行排序 首先我们将map的key存放在一个切片中
	var sslice []string
	for key, _ := range m {
		sslice = append(sslice, key)
	}
	sort.Strings(sslice)

	//在将key输出
	for _, v := range sslice {
		fmt.Printf("key=%v value=%v\n", v, m[v])
	}
}

  

原文地址:https://www.cnblogs.com/egrep/p/9721452.html

时间: 2024-08-06 06:04:15

Golang对map中的key进行排序的相关文章

获取map中根据key进行排序的value数据

今天做的项目中遇到了获取map中根据key进行排序的value数据,key中保存的内容是字符串类型.      map的知识点好久没用有点生疏,不知道怎么去使用.看看之前同事写的map根据key排序的代码,发现他是先把key都取出来封装到一个List中,然后用Collections.sort方法对List排序,按照排完序的顺序去除value顺序加入到一个新的List中.感觉此种方式的循环次数太多,于是上网找找能不能直接排序的方法,看见有人写直接保存到TreeMap中的数据就能实现按照进行排序的功

Map中按value值排序

大家都知道,在java中的集合Map中按键值key排序比较简单,只需引用集合TreeMap即可,可是怎样实现按value值排序呢?下面我们来测试一下: public class TestHashMap { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("zhangsan", 1); map.pu

在map中一个key中存多个值

一说到map都想到key-value键值队存在.key可以为最多一个null的key. 今天开发中一个业务需求,在map中一个key中存多个对象. 我首先想到Map<String,List>造型来解决.尤其是那种一对多的可以这么设计. Map<String,List> map = new HashMap<String,List>();//模型就是这么个. for(int i=0;i<listObj.size();i++){ key = listObj.getId(

【基础】结构体重载,用 char*作为std::map中的key

结构体重载 C++中,结构体是无法进行==,>,<,>=,<=,!=这些操作的,这也带来了很多不方便的地方,尤其是在使用STL容器的时候,如果我们可以往语句中传入结构体,一些事情将会变得很简单. bool operator 运算符 (const 结构体名称 b) const { return(什么时候这个运算符对结构体成立);//注意对此运算符使用this->元素名: } 用 char*作为std::map中的key 首先为什么要用 char*作为std::map中的key

golang中的slice翻转存在以及map中的key判断

//slice翻转 func stringReverse(src []string){ if src == nil { panic(fmt.Errorf("the src can't be empty!")) } count := len(src) mid := count/2 for i := 0;i < mid; i++{ tmp := src[i] src[i] = src[count-1] src[count-1] = tmp count-- } } //判断是否包含 f

将Map中的key和values转化为List

在项目开发中,常常会用到Map,而map的存放是无序的,它存放的是键值对,也就是一个键对应一个值.有时需要将Map的key和value转化为List来进行相关的操作,现在通过实例来实现Map的key和value的转化. 代码如下: package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import

随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value

利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一个计数器,对Set进行循环,当计数器等于随机数时返回当前元素,对于Map的处理也类似. 不知有没有更好的方法-- package com.xjj.util; import java.util.List; import java.util.Map; import java.util.Set; impo

再谈序列化之rpc调用失败和jackson序列化时不允许Map中的key为null

最近遇到了两个序列化相关的问题,比较典型,备忘特此留笔. 1.rpc调用时未进行序列化而导致的rpc调用失败 使用dubbo框架在进行rpc调用的时候,出现了下面的问题,原因是因为接口参数中的NoSerialReqDto类没有实现Serializable接口,没有进行序列化导致的. Caused by: java.lang.IllegalStateException: Serialized class com.your.package.domain.NoSerialReqDto must imp

对list中map中的key值进行排序

//对时间戳进行排序 获取最新的mapList<Map<String, Object>> dateList = new ArrayList<Map<String, Object>>(); Map<String, Object> paramsValue = new HashMap<String, Object>(); paramsValue.put("userId", user.getId()); List<S