c#哈希表 怎么对value(double类型)进行排序 按顺序输出key(string类型)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#哈希表 怎么对value(double类型)进行排序 按顺序输出key(string类型)相关的知识,希望对你有一定的参考价值。
Hashtable ht = new Hashtable();ht.Add("a1", 0.348);
ht.Add("1c", 38.242);
ht.Add("0b", 7.52);
string[] keys = new string[ht.Count];
double[] values = new double[ht.Count];
ht.Keys.CopyTo(keys, 0);
ht.Values.CopyTo(values, 0);
Array.Sort(values, keys);
foreach (string k in keys)
Console.WriteLine(k); 参考技术A 我不知道题主应用在什么场景,在正常情况下,但我们使用哈希表是希望根据key去找value,这样才能用空间换时间,提高程序的性能。
如果需要对value进行排序,就要考虑是不是开始key和value就选错方向了 参考技术B 用字典的话可以给你写一下代码,哈希表就算了。
hash哈希操作
hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象.其操作跟String操作非常类似
1.将哈希表 key 中的字段 field 的值设为 value HSET key field value
2.获取存储在哈希表中指定字段的值。HGET key field
3.同时将多个 field-value (域-值)对设置到哈希表 key 中。HMSET key field1 value1 [field2 value2 ]
4.获取所有给定字段的值HMGET key field1 [field2]
5.查看哈希表 key 中,指定的字段是否存在。HEXISTS key field
6.删除一个或多个哈希表字段HDEL key field1 [field2]
7.将哈希表 key 中的字段 field 的值设为 value 。HSET key field value
8.获取哈希表中字段的数量HLEN key
9.获取所有哈希表中的字段HKEYS key
10.获取哈希表中所有值HVALS key
11.获取在哈希表中指定 key 的所有字段和值HGETALL key
12.为哈希表 key 中的指定字段的整数值加上增量 increment 。HINCRBY key field increment
hash代码操作:
package com.study.util; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import redis.clients.jedis.Jedis; public class RedisHash { public static void main(String[] args) { Jedis jedis = RedisUtil.getJedis(); //将user的id赋值为1 jedis.hset("user", "id", "1"); //获取user的id值 String id = jedis.hget("user", "id"); System.out.println("id:" + id); //设置user的name为zs,age为18 Map<String,String> hash = new HashMap<>(); hash.put("name", "zs"); hash.put("age", "18"); jedis.hmset("user", hash); //获取user的id,name,age值 List<String> hList = jedis.hmget("user", "id","name","age"); System.out.print("user的id,name,age值为:"); for (String value : hList) { System.out.print(value); } System.out.println(); //查看user是否有id字段 boolean hexists = jedis.hexists("user", "id"); System.out.println("user是否有id字段:" + hexists); //删除user中的age字段 jedis.hdel("user", "age"); System.out.print("删除user中的age字段后user的字段:"); //获取user的所有字段 Set<String> keys = jedis.hkeys("user"); for (String key : keys) { System.out.print(key); } System.out.println(); //将user的name值改为zhangsan jedis.hset("user", "name", "zhangsan"); //获取user字段的数量 long length = jedis.hlen("user"); System.out.println("user字段的数量:" + length); //获取user字段的所有值 List<String> values = jedis.hvals("user"); System.out.print("user字段所有值:"); for (String value : values) { System.out.print(value); } System.out.println(); //获取user的所有字段及对应的值 Map<String,String> map = jedis.hgetAll("user"); for (String key : map.keySet()) { System.out.println(key + "->" + map.get(key)); } jedis.close(); } }
代码git地址:https://gitee.com/sjcq/redis.git
以上是关于c#哈希表 怎么对value(double类型)进行排序 按顺序输出key(string类型)的主要内容,如果未能解决你的问题,请参考以下文章
C#中哈希表(HashTable)的用法详解以及和Dictionary比较