二维整数数组,用于按每个维度的升序返回唯一集合

2d integer array for the purpose of returning unique collection in ascending order for each dimensions

创建一个方法 uniqueValue return 一个二维整数数组集合。该方法接受一个 2d 整数数组,目的是 returning unique collection in ascending order for each dimensions...

示例:

输入:

int [][] myArray = {
        { 5, 32, 8, 45, 9, 10, 1, 2, 45, 6, 1, 8 },
        { 4, 2, 3, 1, 7, 3, 2, 6, 2, 2 }
};

输出:

int[][] newArray = {
        { 1, 2, 5, 6, 8, 9, 10, 32, 45 },
        {1, 2, 3, 4, 6, 7}

};

下面的解决方案使用 Java 流 API:

static int[][] sortAndRemoveDuplicates(int[][] arr) {
    return Arrays.stream(arr)  // Stream of int[]
                 .map(row ->   // process each row
                     IntStream.range(0, row.length)  // analog of for loop, stream of indexes
                              .map(i -> row[i])      // convert to stream of int elements
                              .sorted()              // sort in ascending order by default
                              .distinct()            // remove duplicates
                              .toArray()             // build int[] array
                 )
                 .toArray(int[][]::new);  // build result 2D array
}

测试:

int[][] myArray = {
    {5, 32, 8, 45, 9,10 ,1 ,2 , 45, 6, 1, 8},
    {4, 2, 3, 1, 7, 3, 2, 6, 2, 2}
};

int[][] newArray = sortAndRemoveDuplicates(myArray);
Arrays.stream(newArray)
      .map(Arrays::toString)
      .forEach(System.out::println);

输出:

[1, 2, 5, 6, 8, 9, 10, 32, 45]
[1, 2, 3, 4, 6, 7]

java 提供了一个名为 Arrays 的 class,它为您提供了很多选项,例如我曾经对数组进行排序,然后删除重复项:

int[][] myArray = { { 5, 32, 8, 45, 9, 10, 1, 2, 45, 6, 1, 8 }, { 4, 2, 3, 1, 7, 3, 2, 6, 2, 2 } };

for (int i = 0; i < myArray.length; i++) {
    Arrays.sort(myArray[i]);
    myArray[i] = Arrays.stream(myArray[i]).distinct().toArray();
}

for (int i = 0; i < myArray.length; i++) {
    System.out.println(Arrays.toString(myArray[i]));
}