Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字节数组的排序数组列表_Java_Sorting - Fatal编程技术网

Java 字节数组的排序数组列表

Java 字节数组的排序数组列表,java,sorting,Java,Sorting,我有一些python代码,可以执行以下操作: for day in server_message.keys(): for epoch in server_message[day].keys(): assert sorted(server_message[day][epoch]) == server_message[day][epoch] 我需要用Java编写代码。问题在于服务器消息的结构如下所示: Map<Integer, Map<Inte

我有一些python代码,可以执行以下操作:

for day in server_message.keys():
        for epoch in server_message[day].keys():
            assert sorted(server_message[day][epoch]) == server_message[day][epoch]
我需要用Java编写代码。问题在于服务器消息的结构如下所示:

 Map<Integer, Map<Integer, ArrayList<byte[]>>>
如何对字节数组列表进行排序?Arrays.sort和Collections.sort都不会返回新的排序数组,而是返回所提供数组上的工作


在Java中,我可以做些什么来解决这个问题,或者我需要为这种排序编写自己的排序算法吗?如何比较两个字节的数组?

array.sort在后端使用快速算法,我很惊讶为什么array.sout不起作用,但您可以使用快速排序

public class QuickSort {  
public static void main(String[] args) {  
        int i;  
        int[] arr={90,23,101,45,65,23,67,89,34,23};  
        quickSort(arr, 0, 9);  
        System.out.println("\n The sorted array is: \n");  
        for(i=0;i<10;i++)  
        System.out.println(arr[i]);  
    }  
    public static int partition(int a[], int beg, int end)  
    {  

        int left, right, temp, loc, flag;     
        loc = left = beg;  
        right = end;  
        flag = 0;  
        while(flag != 1)  
        {  
            while((a[loc] <= a[right]) && (loc!=right))  
            right--;  
            if(loc==right)  
            flag =1;  
            elseif(a[loc]>a[right])  
            {  
                temp = a[loc];  
                a[loc] = a[right];  
                a[right] = temp;  
                loc = right;  
            }  
            if(flag!=1)  
            {  
                while((a[loc] >= a[left]) && (loc!=left))  
                left++;  
                if(loc==left)  
                flag =1;  
                elseif(a[loc] <a[left])  
                {  
                    temp = a[loc];  
                    a[loc] = a[left];  
                    a[left] = temp;  
                    loc = left;  
                }  
            }  
        }  
        returnloc;  
    }  
    static void quickSort(int a[], int beg, int end)  
    {  

        int loc;  
        if(beg<end)  
        {  
            loc = partition(a, beg, end);  
            quickSort(a, beg, loc-1);  
            quickSort(a, loc+1, end);  
        }  
    }  
}  

我认为您的问题是排序字节数组byte[],而不是排序没有任何意义的字节数组列表。 如果要在不修改现有字节数组的情况下获取已排序的字节数组,可以先克隆原始数组,然后再执行以下操作:

byte[] bytes = {0, 23, 127, -12 };
byte[] clone = bytes.clone();
Arrays.sort(clone);

您希望如何准确地对它们进行排序?您将使用什么标准进行排序?这是问题的一部分,我不知道python的排序方法如何在字节数组上工作。我想需要的是越来越多的顺序。