java - 根据另一个数组中给定的索引顺序重新定位数组中的项目

标签 java c# arrays algorithm

我有如下两个数组。

string[] alb = new string[5] 
             {
                "B","Z","C", "E","T"
             };
int[] orderedIndexes = {0,3,4,1,2}

根据第二个数组中给出的索引,我想对齐第一个数组中的项目。我不想使用另一个数组作为缓冲区,而是喜欢使用相同的数组来交换项目。我期待的结果是这样的

alb = {"B","E","T","Z","C"}. 

注意:由于真正的问题是具有真正的商业值(value),所以我无法发布我所做的作业。

非常感谢任何帮助。

最佳答案

linq 答案绝对很棒,但我认为以老式数组操作方式解决它会很有趣。此外,问题的一部分提到没有创建缓冲区,对我来说,linq 答案有点违反了。不管怎样,不管它值多少钱......

using System;

namespace x
{
    class Program
    {
        static void Main()
        {
            var alb = new[] { "B","Z","C","E","T" };
            int[] orderedIndexes = {2,0,1,4,3};

            for (var i = 0; i < orderedIndexes.Length; i++)
            {
                var x = orderedIndexes[i];
                var ts = alb[i];
                alb[i] = alb[x];
                alb[x] = ts;
                x = Array.IndexOf(orderedIndexes, i);
                var ti = orderedIndexes[i];
                orderedIndexes[i] = orderedIndexes[x];
                orderedIndexes[x] = ti;
            }

            for (var i = 0; i < orderedIndexes.Length; i++)
            {
                Console.WriteLine("{0}, {1}", i, alb[i]);
            }
        }
    }
}

关于java - 根据另一个数组中给定的索引顺序重新定位数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265611/

相关文章:

c# - 查找包含数据的行中的单元格数

c# - 查询字符串的 SQL 注入(inject)技术

c++ - 通过指针排序

c++ - 基于用户输入的二维动态数组

java - 系统范围 Jar 引发未找到类异常

java - 错误 java.lang.ArrayIndexOutOfBoundsException

java - 我需要一个类来对正常人群进行假设检验

java - 从java注释生成swagger文档,缺少安全定义

c# - signalr 我如何从服务器向调用者发布消息

Java:从数组切片中查找最大值的索引