首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >字符串数组比较和排序

字符串数组比较和排序
EN

Stack Overflow用户
提问于 2012-03-17 00:40:20
回答 4查看 152关注 0票数 3

首先,我想说的是,我的编程知识是非常基础的,我的编程风格是“边学边学”。所以,如果我听起来很愚蠢,请容忍我。

所以我有一个多维字符串数组,它的一部分是:

代码语言:javascript
复制
X       Y

4,1 Adelaide
4,2 Interlagos
4,3 Sakhir
4,4 Hungaroring
4,5 Estoril
4,6 Barcelona
4,7 Silverstone
4,8 Mugello
4,9 Hockenheim
4,10 Monte Carlo

在上表中,X和Y是数组的2个维度。

现在我有了另一个字符串数组,它以未排序的方式包含上述数组的X维元素。例如,

代码语言:javascript
复制
4,6
5,15
3,7
10,12

等等。

现在我要做的是写一段代码,它查看数组#2,并从数组#1的维度Y中分配一个相应的元素。

例如,当代码在数组#2中遇到4,6时,我希望代码分配相应的值,即巴塞罗那。

仅仅是基本的代码片段或算法就是我要找的。剩下的我自己来做。

提前感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-17 00:41:46

听起来表1实际上应该是一个Dictionary<string, string>,将"4,6“映射到”巴塞罗那“。然后你可以这样做:

代码语言:javascript
复制
// However you want to populate your data
Dictionary<string, string> mapping = ...;

List<string> values = keys.Select(key => mapping[key]).ToList();

请注意,如果没有映射任何键,这将抛出异常-如果这不是您想要的,请澄清需求。

不清楚您是如何获得这些数据的,也不清楚您的“多维字符串数组”是string[,]还是string[][]。如果您必须将其作为字符串数组接收,请提供更多详细信息,我们可以解释如何将其转换为字典。

票数 6
EN

Stack Overflow用户

发布于 2012-03-17 00:51:10

你应该使用字典来解决这个问题。字典在内部是一个数组。如果你移交一个键,值对(插入它)就会被一个所谓的散列函数应用到这个键上。此函数返回一个整数i。该值存储在arrayi中。如果你想从字典中获取一个值,你只需要提交键即可。在内部应用散列函数,计算i并返回arrayi。这听起来似乎开销很大,但对于大型数组,查找键的速度很慢(如果按键排序,则为O(Log n);如果根本不排序,则为O(n) -如果您知道O通知),其中散列函数在大多数应用程序中可能非常快。因此,即使使用大型字典,访问一个值也是很快的。(字典中还有一些技巧,用于处理两个键导致相同的整数i的情况,但如果您不想自己实现字典,则不必太在意这一点)

字典在其他语言中也称为map或hashmap。

票数 1
EN

Stack Overflow用户

发布于 2012-03-17 00:59:13

我不确定我是否正确地解释了你的问题...

你的数组#2,你是说你想用“巴塞罗那”替换它的元素(比如"4,6")?

如果是这样的话:

循环通过数组#2,对于每个元素,使用String.split()从其中获取两个数字部分(例如。"4“和"6")。然后使用Integer.parseInt()将它们从字符串转换为整数(称为a,b),并使用这些整数作为数组#1的索引,如array1a,以获取Y值。

我假设你真的想使用数组,因为这些数字很小并且有界,否则就像其他答案所建议的那样使用字典……

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9741158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档