文档章节

C#.NET 对HashTable数组进行按值排序

vga
 vga
发布于 2017/09/12 15:29
字数 417
阅读 10
收藏 0
C#.NET 对HashTable数组进行按值排序
  最近做了一个项目,需要对一个2维数组的值进行排序然后再取出对应的Key值。开始是用HashTable做的,不过HashTable中的排序只是对Key进行排序,如果想对值进行排序得用其它办法。下面我就把这种方法说下:

     一.我们先假设一个二维数组,用HashTable来储存值,当然你也可以去其它数组类来实现,这里就用HashTable。

   

HashTable ht=new HashTable();
ht.add("a",1);
ht.add("b",4);
ht.add("c",3);
ht.add("d",2);
 

 

我就不向里面添加内容了,我们假设这个数组中的Key为字符串,Value为Int类型(注:Value有重复值)。里面有若干数据。我们现在要实现的是将Value按从小到大排序,然后再取出排序过后的Key的值,请看代码:


复制代码
//先定义两个一维数组,分别用来存储Key和Value
string[] keyArray=new string[ht.Count];
int[] valueArray=new int[ht.Count];

//将HashTable中的Key和Value分别赋给上面两个数组
//注:有关CopyTo的用法请参考相关帮助文档
ht.Keys.CopyTo(keyArray,0); 
ht.Values.CopyTo(valueArray,0);

//下面就是对Value进行排序,当然需要按排序结果将Keys的值也作对应的排列
//Sort默认是升序排序,如果想用降序排序请在Sort排序后使用Array.Reverse()进行反向排序
Array.Sort(valueArray,keyArray);


复制代码
 

上面的代码已经将Value进行了升序排序,并且Key也作了相应的排列。

 这样的话keyArray的值就成:

"a"

"d"

"c"

"b"

本文转载自:http://www.cnblogs.com/lovesangel/archive/2010/02/04/1663592.html

共有 人打赏支持
vga

vga

粉丝 21
博文 362
码字总数 24609
作品 0
佳木斯
私信 提问
Java常见面试题及答案 21-30(集合类)

21.HashMap的工作原理是什么? HashMap内部是通过一个数组实现的,只是这个数组比较特殊,数组里存储的元素是一个Entry实体(jdk 8为Node),这个Entry实体主要包含key、value以及一个指向自身的...

t4i2b10x4c22nf6a
2017/12/18
0
0
ConcurrentHashMap深入分析

![Map类图][1]Hashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者...

陶邦仁
2014/03/24
0
0
Java Map 按key排序和按Value排序

Java Map 按key排序和按Value排序 一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 Na...

writeademo
2016/10/12
4
0
面试二 : map 排序

面试官出的题: 给你一组学生的成绩信息,key 为学生姓名,value 为成绩,然后根据value 进行排序。 说实话,面试官问到我的时候,真的挺崩溃的,自己的算法本来就不好,对这个又不是很熟悉,...

botaorain
2014/09/24
0
0
在C#中应用哈希表(Hashtable)

一,哈希表(Hashtable)简述 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/value的键值对,其中key通常可用来快速查找,同时key是区分大...

晨曦之光
2012/03/09
76
0

没有更多内容

加载失败,请刷新页面

加载更多

图片无限轮播

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, max......

shawnDream
5分钟前
0
0
js 在==时,则会有一些让人难以理解的陷阱

在==时,则会有一些让人难以理解的陷阱。 (function () { var undefined; undefined == null; // true 1 == true; //true 2 == true; // false 0 == false; // true 0 == ''; // true NaN ==......

之渊
7分钟前
1
0
前后端分离之JWT用户认证

参考资料 1、前后端分离之JWT用户认证

哎小艾
12分钟前
0
0
TiDB 在量化派风控系统中的应用

作者:朱劲松,量化派研发中心系统架构师,主要参与了基础组件开发、API Gateway 等项目,现在致力于公司风控系统相关业务的架构设计和研发。 一、公司简介 量化派(QuantGroup)创办于 2014...

TiDB
14分钟前
0
0
Spring Cloud Feign 异常处理

问题 最近在项目开发中,使用 Feign 调用服务,当触发熔断机制时,遇到了以下问题: 异常信息形如:TestService#addRecord(ParamVO) failed and no fallback available.; 获取不到服务提供方...

xiaomin0322
27分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部