Java 字节数组的排序数组列表
我有一些python代码,可以执行以下操作: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
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的排序方法如何在字节数组上工作。我想需要的是越来越多的顺序。